Afişează mesaje
Pagini: 1 ... 4 5 [6]
126  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 357 Editor : Martie 19, 2010, 23:10:06
mi-a iesit de 100 puncte Boxing Boxing Boxing
ideea este urm:
retii intr-un vector char parantezele si de fiecare data cand ai '*' stergi ultimul caracter.apoi mai iei 4 variabile in care notezi:
-cate ' ( ' ai
-cate ' ) ' ai
-cate ' [ ' ai
-cate ' ] ' ai

apoi verifici daca nr_par_(==nr_par_) si nr_par_[==nr_par_] si daca nu ai alte chestii( de exemplu "( (  [ ) ] ) ")

totusi ce are testul 1 ca am vazut ca pica multi pe el Think . e din cauza ca are '*' la inceput?
127  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 862 Patrate5 : Martie 14, 2010, 16:20:26
asta se face cu backtracking ?   Winner 1st place
128  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 023 Numere Prime : Martie 14, 2010, 09:08:01
gata s-a rezolvat  Very Happy .m-a ajutat robert simoiu multumesc inca o data  Very Happy Winner 1st place
129  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 023 Numere Prime : Martie 13, 2010, 15:50:18
bine dar iau 20 de puncte  Very Happy si nu stiu de ce Read This! .am pus unsigned long long si zice WA oare o fi de la ciur? Confused
130  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 023 Numere Prime : Martie 13, 2010, 11:28:46
pai nu cumva numarul cautat este (al n+1-lea nr prim)^2?
de exemplu pt n=3 avem numerele 2,3,5 ,iar nr cautat este 49,adica 7*7(7 e urm numar prim dupa 5) Huh
131  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 986 Numar4 : Martie 09, 2010, 21:15:18
am facut-o  Very Happy .ideea este simpla,avand in vedere ca nr de jos este format doar din 1 si 0(de fapt e sub forma 1*(10^n)),va trebui sa impartim doar la 2 si 5,deci vom folosi un algoritm de impartire pt numere mari  Very Happy Winner 1st place
132  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 480 Ecuatii 2 : Februarie 28, 2010, 17:35:11
Salut  Very Happy
Cum se face ca iau 20 de puncte wink ?Adica nu-mi dau seama la ce am gresit(dar presupun ca stiu)
Cod:
#include<fstream.h>
#include<string.h>
#include<math.h>
 ifstream f("ecuatii2.in");
  ofstream g("ecuatii2.out");
    int mod(double a){
        if(a<0) return a*-1;
        return a;
    }
    int cifra(char a){
        if(a>='0' && a<='9') return 1;
        return 0;
    }
    int main(){
        char a[256],semn='+';
        int nr2,n,i,l,j,ret,l2;
        double lit,cif,nr,nr3;
        f>>n;
        for(i=1;i<=n;i++){
            f>>a;//f.get(a,255);
            f.get();
            j=0;
            while(a[j]!='=') j++;
            nr2=j;
            l=strlen(a);
            l2=l;
            semn='+';
            j=0;
            lit=0;
            cif=0;
            while(/*a[j-1]!='=' && a[j]!='=' && j<l*/j<nr2){//mergi pana la egal('=')
                //g<<"da\n";
                if(cifra(a[j])){//daca a[j] este cifra
                    nr=0;
                    if(j>0) semn=a[j-1];
                    while(cifra(a[j]) && a[j]!='='){//cat timp a[j] este cifra
                        nr=nr*10+(a[j]-'0');
                        j++;
                    }
                    if(semn=='+'){
                        if(a[j]=='x') lit=lit+nr;
                        else
                        cif=cif+nr;
                    }
                    else if(semn=='-'){
                         if(a[j]=='x') lit=lit-nr;
                         else
                         cif=cif-nr;
                    }
                }
                else
                if(a[j]=='x'){if(j>0) semn=a[j-1];if(semn=='+') lit++;else lit--;}
                j++;
            }
            j=j-(j-nr2);
            ret=j+1;
            j++;
            //g<<a[j]<<"\n";
            semn='+';
            l=l2;
            while(j<l){
                if(cifra(a[j])){//daca a[j] este cifra
                    if(a[j-1]!='=') semn=a[j-1];
                    nr=0;
                    while(cifra(a[j]) && j<l){//cat timp a[j] este cifra
                        nr=nr*10+(a[j]-'0');
                        j++;
                    }
                    if(semn=='+'){
                        if(a[j]=='x') lit=lit-nr;
                        else
                        cif=cif-nr;
                    }
                    else if(semn=='-'){
                         if(a[j]=='x') lit=lit+nr;
                         else
                         cif=cif+nr;
                    }
                }
                else
                if(a[j]=='x'){if(a[j-1]=='-' || a[j-1]=='+') semn=a[j-1];if(semn=='+') lit--;else lit++;}
                j++;
            }
            //if(cif<0) cif=cif*-1;
            //if(lit<0) lit=lit*-1;
            //if(cif<0){cif=cif*-1;lit=lit*-1;}
            nr3=cif/lit;
            if(nr3<0) cif=cif*-1;//aici!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!cred ca nu e bine ca //uneori afiseaza numar negativ  :-k
            if(lit!=0) g<<cif/lit<<"\n";
            else
            if(lit==0 && cif!=0) g<<"imposibil\n";
            else
            if(lit==0 && cif==0) g<<"infinit\n";
            //g<<cif<<" "<<lit<<"\n";
            //g<<a[0]<<"\n";
        }
        g.close();
        return 0;
    }
133  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 008 Cifra : Februarie 22, 2010, 19:35:07
gata stiu care e problema
eu am zis ca ucif(1^1+2^2+...+9^9)=0,dar este 7  Aha
dar totusi trebuie un algoritm de suma pentur numere mari

multumesc oricum sunteti cei mai tari  Very Happy
134  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 008 Cifra : Februarie 21, 2010, 20:55:46
sigur nu sunt gresite testele?adica iau 0 puncte si imi da bine pentru exemplu.uite ideea mea:
ca sa calculam ultima cifra trebuie sa calculam doar suma ultimelor cifre.doar ca si asta ar fi cam mult.asa ca,intr-un vector separat retii sumele astfel:
poz 1:ucif(1^1)
poz 2:ucif(1^1)+ucif(2^2)
poz 3:ucif(1^1)+ucif(2^2)+ucif(3^3)
...
si de fiecare data eu afisezi v[ucif a lui n](deoarece ucif(1^1+2^2+...+9^9)=0,deci ne va interesa doar ultima cifra(adica restul impartirii la 10),pentru ca celelalte vor avea suma 0)

si algoritmul asta ia 0 puncte(  Think )
uite ce am facut eu:
Cod:
#include<fstream.h>
 #include<string.h>
  ifstream f("cifra.in");
   ofstream g("cifra.out");
    int main(){
        char a[101];
        int v[10],n,i,l;
        v[0]=0;
        v[1]=1;
        v[2]=5;
        v[3]=2;
        v[4]=8;
        v[5]=3;
        v[6]=9;
        v[7]=2;
        v[8]=8;
        v[9]=7;
        f>>n;
        for(i=1;i<=n;i++){
            f>>a;
            l=strlen(a);
            g<<v[a[l-1]-'0']<<"\n";
        }
        g.close();
        return 0;
    }
daca va dati seama care e problema va rog sa-mi spuneti Very Happy
135  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 970 Joben : Februarie 21, 2010, 13:48:32
Firar sa fie,am luat 10 puncte la Algoritmiada si aici 60.Nu mai fac niciodata citiri cu stdio Angry  Read This! .Ce trebuie facut pentru a obtine 100 de puncte? Am un time limit exceed si 3 wrong awnswer
136  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 046 Text : Februarie 05, 2010, 20:12:38
40 de puncte Smile
Cod:
#include<fstream.h>
#include<string.h>
 ifstream f("text.in");
 ofstream g("text.out");
 int litera(char a){
     if((a>='a' && a<='z') || (a>='A' && a<='Z')) return 1;
     return 0;
 }
 int bun(char a,char b){
if(litera(a) && b=='-') return 1;
return 0;
 }
  int main(){
      char a[10001];
      int cuv=0,nr=0,l,i,len,k;
      f.getline(a,2000);
      l=strlen(a);
      i=0;
      while(i<l){
          if(litera(a[i])) nr++;
          i++;
      }
      i=0;
    while(litera(a[i])==0) i++;//cat timp exista spatii la inceput le elimini
      while(i<l){
while(litera(a[i])) i++;
if(litera(a[i-1]) || litera(a[i+1])) cuv++; 
while(!litera(a[i])) i++;
}
g<<nr/cuv;
g.close();
return 0;
 }
137  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 687 Joc8 : Februarie 05, 2010, 10:42:33
eu iau 60 de puncte Whistle dar tot nu inteleg de ce Think
138  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 018 Siruri 2-3-monotone : Decembrie 13, 2009, 17:59:22
nivan,uite de ce iei 40 de puncte
Test Timp executie Memorie folosita Mesaj Punctaj/test
1 0ms 8kb Corect! 10
2 20ms 540kb Corect! 10
3 0ms 12kb Corect! 10
4 0ms 12kb Corect! 10
5 1052ms 2256kb Time limit exceeded. 0
6 1052ms 2720kb Time limit exceeded. 0
7 1052ms 2540kb Time limit exceeded. 0
8 1052ms 2848kb Time limit exceeded. 0
9 1052ms 3788kb Time limit exceeded. 0
10 1052ms 3120kb Time limit exceeded. 0
Punctaj total 40
sper ca nu te superi,am trimis sursa ta Smile
139  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 023 Numere Prime : Decembrie 11, 2009, 19:30:04
salut tuturor.as avea o problema in legatura cu problema Confused .la programul meu se blocheaza,am facut cu ciurul lui erastostene dar nu-mi merge(se blocheaza cand dau pe execute).ma poate ajuta cineva?va rog mult!!!uite sursa mea:
Cod:
#include<stdio.h>
 int a[10000],x[10000000],i,j,k,l=0,z,dk;
 int q=0;
 FILE *f,*g;
 int ciur(){
     for(i=1;i<=1000000;i++)
         a[i]=0;
     i=2;
     dk=k;
     while(i<=1000){
         if(a[i]==0)
             for(j=i+i;j<=1000000;j+=i)a[j]=1;
         i++;
     }
     j=1;
     for(i=1;dk>0;i++) if(a[i]==0) {dk--;x[j++]=i;}
 }
  int main(){
      f=freopen("prim.in","rt",stdin);
      g=freopen("prim.out","wt",stdout);
      printf("%d",k);
      ciur();
      q=2;
      while(l==0){
         z=1;
         while(a[q]==0) q++;
         while(q%x[z]==0 && z<=k) z++;
         l=(z==k);
         q++;
      }
      fprintf(g,"%d",q);
      fclose(g);
      return 0;
  }
daca isi da cineva seama unde e eroarea sa scrie pe forum sau pe id-ul meu vladtarniceru(sau sa mi-o trimita mail la [email protected]). peacefingers
140  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 002 Jocul Flip : Decembrie 11, 2009, 17:35:07
ideea e usoara,eu zic ca trebuie facut asa:
1:calculez suma de pe fiecare linie(linia i) si verific daca suma<suma*(-1).daca e asa inmultesti fiecare din termenii de pe linia i cu (-1);
2:calculez suma de pe fiecare coloana(coloana j) si verific daca suma<suma*(-1).daca e asa inmultesti fiecare din termenii de pe coloana j cu (-1);
3.explicatie:daca (-a)+b+(-c)=s,atunci a+(-b)+c=s*(-1);(s=(-a)+b+(-c);daca il inmultesti pe s cu (-1) este clar ca suma relatiei *(-1) este s(s cel nou))
acum nu stiu cat de rapid e acest algoritm,cred ca face mai mult de 60-70 de puncte(sper)
141  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 006 Factorial : Decembrie 10, 2009, 16:30:07
0-urile la sfarsit nu se formeaza prin numar par*5?
142  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 003 Fractii : Decembrie 10, 2009, 16:09:14
am incercat,dar tot nu prea am inteles(sunt in clasa a6-a  Smile).Si pe sursa mea iau doar 10 puncte.
Cod:
#include<fstream.h>
 int prim(long n,long m){
     while(m!=0 && n!=0)
         (m>n?m=m%n:n=n%m);
     if(n!=0) return n;
     return m;
 }
 ifstream f("fractii.in");
 ofstream g("fractii.out");
  int main(){
      long t,n,m,nr=0;
      f>>t;
      nr+=t*2-1;
      for(n=2;n<=t;n++)
          for(m=2;m<=t;m++)
              nr+=(prim(n,m)==1);
      g<<nr;
      g.close();
      return 0;
  }
asta e prog meu,poate isi da cineva seama....BAFTA:peacefingers:
143  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 003 Fractii : Decembrie 10, 2009, 15:25:10
problema asta e frumoasa,dar am alta idee.pt a vedea daca 2 nr sunt prome intre ele scadem din cel mai mare cel mai mic pana nr sunt egale (ex:12,8,12-8=4.ramane 4,8.8-4=4.ramane 4,4 =>(12,8)=4).asta e recursiva.dar mai e si altfel.de imparte cel mare la cel mic si se pastreaza restul,pana unul din resturi este 0.atunci afisam numarul nenul(ex:12,8,12%8=4.ramane 4,8.8%4=0.ramane 0,4 => (12,8)=4).poate o sa para absurd,dar e algoritmul lui euclid   Winner 1st place.si mai e ceva.ajutati-ma si pe mine,care e ideea cu ciurul lui eratostene?memoram toate nr si apoi verificam cu un for daca e sau nu prim? ca de exemplu numarele 4 si 21 nu sunt prime dar sunt prime intre ele
144  infoarena - concursuri, probleme, evaluator, articole / Informatica / Problema : Decembrie 08, 2009, 20:53:05
cine ma ajuta si pe mine cu alta problema?Uite enuntul:

Fie n un numar intreg strict pozitiv si c o cifra zecimala.

CERINTA

Scrieti un program care sa determine cel mai mare si cel mai mic numar care se pot obtine inserand cifra c in numarul n.

DATE DE INTRARE

Fisierul de intrare nr3.in contine pe prima linie numarul natural n si cifra c, separate printr-un spatiu.


DATE DE IESIRE
 
Fisierul de iesire nr3.out va contine doua linii. Pe prima linie va fi scris cel mai mare numar care se poate obtine inserand cifra c in numarul n. Pe cea de a doua linie va fi scris cel mai mic numar care se poate obtine inserand cifra c in numarul n.

RESTRICTII
 
Numarul are maxim 1000 de cifre

EXEMPLU
.IN
372 5
.OUT
5372
3572

Aparent e usor,dar nu stiu cum fac sa treaca de la tipul char la int...
145  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 003 Fractii : Noiembrie 20, 2009, 17:57:18
definitie:pentru ca o fractie sa fie ireductibila,(numarator,numitor)=1(cel mai mare divizor comun al numitorului si numaratorului trebuie sa fie 1),adica numaratorul si numitorul sa fie prome intre ele Winner 2nd place,locu 1 dupa ce o fac(eti).parerea mea,faceti cu subprogram,dar nu gatantez ca o sa va dea 100 de puncte.
 
Cod:
 int prim(long m,long h){
     while(m!=h)
     if(m>h) m-=h;
     else
     if(m<h) h-=m;
     return h;
 }           


bafta peacefingers


am uitat sa spun asta e var recursiva incercati s-o imbunatatiti(ca timp de executie)  cu modul in
Cod:
#include<math.h>
mod(....);


Cod:
include<math.h>
in C/C++.in pascal nu mai stiu

[editat de moderator] nu mai posta consecutiv, foloseste butonul "modifica"
Pagini: 1 ... 4 5 [6]
Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines