•DITzoneC
|
 |
« : August 14, 2007, 00:06:30 » |
|
Aici puteţi discuta despre problema Pluton.
|
|
|
Memorat
|
|
|
|
•Robytzza
|
 |
« Răspunde #1 : Septembrie 27, 2007, 15:22:24 » |
|
testele de aicea sunt aleleasi de la oji???
|
|
|
Memorat
|
|
|
|
•peanutz
|
 |
« Răspunde #2 : Septembrie 27, 2007, 20:01:43 » |
|
sunt 99% sigur ca da
|
|
|
Memorat
|
....staind....
|
|
|
•Robytzza
|
 |
« Răspunde #3 : Decembrie 21, 2007, 07:34:00 » |
|
pot existat soldati cu numarul 0 la inceput ex:001 sau 034025?
|
|
|
Memorat
|
|
|
|
•Florian
|
 |
« Răspunde #4 : Decembrie 21, 2007, 08:46:19 » |
|
Nu
|
|
|
Memorat
|
|
|
|
•Robytzza
|
 |
« Răspunde #5 : Decembrie 22, 2007, 10:39:18 » |
|
pe testele de la oji imi da bine,pote ca e ceva gresit la citire for (int i=0;i<n;i++) { fin.get(c); int num=0; while (c!='\n') { a[i][c-'0']++; sir[i]=sir[i]*10+(c-'0'); num++; fin.get(c); }
? 
|
|
« Ultima modificare: Decembrie 22, 2007, 18:03:32 de către Andrei Grigorean »
|
Memorat
|
|
|
|
•xtreme
|
 |
« Răspunde #6 : Octombrie 27, 2008, 16:54:05 » |
|
se poate declara "char v[4000][11]" pe borland c++?
|
|
|
Memorat
|
|
|
|
•gabitzish1
|
 |
« Răspunde #7 : Octombrie 27, 2008, 17:35:58 » |
|
Daca folosesti borland c++, de ce nu incerci sa vezi daca merge? Daca nu merge, poti sa declari ceva mai putin, si cand dai submit sa modifici dimensiunile. LE: cer scuze daca n'a fost folositor raspunsul meu 
|
|
« Ultima modificare: Octombrie 27, 2008, 18:24:46 de către Bitis Gabriel »
|
Memorat
|
|
|
|
•pauldb
|
 |
« Răspunde #8 : Octombrie 27, 2008, 18:01:10 » |
|
se poate declara "char v[4000][11]" pe borland c++?
Da, ar trebui sa incapa. Daca folosesti borland c++, de ce nu incerci sa vezi daca merge? Daca nu merge, poti sa declari ceva mai putin, si cand dai submit sa modifici dimensiunile.
Presupun ca nu foloseste Borland si era curios daca i-ar fi mers la OJI. 
|
|
|
Memorat
|
Am zis 
|
|
|
•xtreme
|
 |
« Răspunde #9 : Octombrie 27, 2008, 23:27:32 » |
|
se poate declara "char v[4000][11]" pe borland c++?
Da, ar trebui sa incapa. Daca folosesti borland c++, de ce nu incerci sa vezi daca merge? Daca nu merge, poti sa declari ceva mai putin, si cand dai submit sa modifici dimensiunile.
Presupun ca nu foloseste Borland si era curios daca i-ar fi mers la OJI.  Nu aparea eroare la daca il verificam iar daka il executam iesea afara. Folosesc borland dar mie borlandul mi se pare cam aiurea...de multe ori se intampla ca sa poti declara cu succes o matrice si dupa aceea sa obervi ca nu poate sa ti le scrie in matrice.In fine am reusit sa rezolv problema pe alta metoda,pe testele de la oji mia dat 100,aici mia dat la fiecare test 7 puncte,deci nu mia dat 3 pentru ca nu am afisat corect soldatii din unul din plutoanele cele mai numeroase.Din cauza ca is mai multe solutii pentru cele 3 puncte,nu s-ar putea sa fie o greseala la compilator?La toate exemplele pe care leam avut mia dat bine.
|
|
|
Memorat
|
|
|
|
•toni2007
|
 |
« Răspunde #10 : Octombrie 28, 2008, 10:49:27 » |
|
Din cauza ca is mai multe solutii pentru cele 3 puncte,nu s-ar putea sa fie o greseala la compilator?La toate exemplele pe care leam avut mia dat bine. In nici un caz la compilator... Compilatorul este programul care iti creeaza tie executabilul. Apoi evaluatorul ruleaza programul tau pe cele X teste, si la fiecare intra verificatorul sa verifice daca tu ai raspunsul corect. Tine minte ca in nici un caz evaluatorul este stricat. Daca au reusit 100 de useri sa ia 100 de puncte atunci in mod sigur este ceva la tine nu la evaluator. Fa-ti un generator de teste, si intreaba aici cat ne da pe un test mai mare. Spor 
|
|
« Ultima modificare: Octombrie 29, 2008, 21:05:44 de către Pripoae Teodor Anton »
|
Memorat
|
|
|
|
•xtreme
|
 |
« Răspunde #11 : Octombrie 28, 2008, 22:51:55 » |
|
Sau verifica cu testele de la OJI.
Am precizat mai sus ca am verificat cu multe si mia dat bine inclusiv OJI,am gresit zicand ca(virgula),compilatorul e de vina.Dar eu ma intreb cum au fakut atasamentele?(tinand cont ca exista mai multe solutii pt cele 3 pct)
|
|
« Ultima modificare: Octombrie 28, 2008, 22:57:09 de către Savin Tiberiu »
|
Memorat
|
|
|
|
•devilkind
|
 |
« Răspunde #12 : Octombrie 28, 2008, 23:05:31 » |
|
la atasamente exista un fisier numit grader_eval.cpp care verifica daca solutia ta este sau nu corecta.
|
|
|
Memorat
|
|
|
|
•TociTox
Strain
Karma: 4
Deconectat
Mesaje: 6
|
 |
« Răspunde #13 : Octombrie 31, 2008, 22:52:03 » |
|
Am incercat o functie de convertire din intreg in sir de caractere "ltoa" (in visual functioneaza doar "_ltoa"), dar cand trimit la infoarena imi da eroare de compilare. Ce imi sugerati ?
|
|
|
Memorat
|
|
|
|
•CezarMocan
|
 |
« Răspunde #14 : Octombrie 31, 2008, 23:04:47 » |
|
Uite aici cum poti sa convertesti un int intr-un string: #include <iostream> #include <sstream>
int main() { int number = 123;
std::stringstream ss; ss << number;
std::cout << ss.str() << endl; }
Sau faci de mana 
|
|
|
Memorat
|
|
|
|
•TociTox
Strain
Karma: 4
Deconectat
Mesaje: 6
|
 |
« Răspunde #15 : Octombrie 31, 2008, 23:12:03 » |
|
Uite asta e un fragment din codul meu : _ltoa(m[i][2],s1,10); _ltoa(nriden,s2,10);
unde m[1][2], respectiv nriden reprezinta numerele si s1 sirul de caractere in care vreau sa le convertesc si 10 baza (dupa sintaxa din help-ul borlandului)
|
|
|
Memorat
|
|
|
|
|
•wefgef
|
 |
« Răspunde #17 : Octombrie 31, 2008, 23:41:16 » |
|
Interesant faptul ca functia itoa nu e standard, in timp ce atoi da.
|
|
|
Memorat
|
omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
|
|
|
•Bit_Master
|
 |
« Răspunde #18 : Decembrie 26, 2008, 16:59:28 » |
|
Dar la linia a 4-a nu specifica in ce ordine trebuie scrisi soldatii. Cum poate verifica evaluatorul daca este raspuns corect daca sunt multe combinatii posibile de a scrie soldatii?  Trebuie ordonati descrescator (asa vad in exemplu dar in problema nu impune aceasta restrictie)? 
|
|
|
Memorat
|
|
|
|
•pauldb
|
 |
« Răspunde #19 : Decembrie 26, 2008, 17:39:53 » |
|
Poti afisa soldatii in orice ordine. Evaluatorul nu tine cont de ordinea in care afisezi.
|
|
|
Memorat
|
Am zis 
|
|
|
•cosmin79
Strain
Karma: 36
Deconectat
Mesaje: 46
|
 |
« Răspunde #20 : Ianuarie 23, 2009, 18:38:47 » |
|
Deci e ceva dubios cu testele...Am stat cu 50 puncte peste 1 luna,cu tle pe testul 7 http://infoarena.ro/job_detail/238653  ,fara sa-mi dau seama unde buseste.Am descarcat si testele date la oji si mi-a mers pe toate testele programul. Pe testul 7 imi intra pe ciclu infinit cred...Dupa multe incercari  mi-am dat seama ca greseala este la functia de calculare a codului soldatilor(am calculat cel mai mic nr care se poate forma cu cifrele nr respectiv).Pe urma am schimbat functia codului cu una asemanatoare in care calculez cel mai mic nr care se poate calcula cu cifrele de la 1 la 9 ale nr si la sfarsit adaugam cifrele de 0.Si asa am scapat de tle si am luat 100 puncte http://infoarena.ro/job_detail/247680  Daca cineva poate sa-mi spuna ce era gresit initial raman indatorat,desi eu tot cred ca e ceva dubios cu testele. Deci initial am facut functia asa: int codul(int x) { int a[10],i,j,r,minim=10,nr=0; for (i=0; i<=9; i++) a[i]=0; do { r=x%10; a[r]++; if (r && r<minim) minim=r; x/=10; } while (x); nr=minim; a[minim]--; for (i=0; i<=9; i++) for (j=1; j<=a[i]; j++) nr=nr*10+i; return nr; } si pe urma: int codul(int x) { int a[10]={0},r=0; do{ ++a[x%10]; x/=10; }while(x); for(int i=1;i<=9;++i) while(a[i]--) r=r*10+i; while(a[0]--) r*=10; return r; }
|
|
« Ultima modificare: Ianuarie 23, 2009, 19:14:34 de către Sima Cotizo »
|
Memorat
|
|
|
|
•xtreme
|
 |
« Răspunde #21 : Februarie 05, 2009, 19:40:11 » |
|
iau 100 pe evaluatorul de la OJ,mi-am generat o gramada de teste si mi-a dat cum trebuie dar pe evaluatorul de pe site iau pe fiecare test 7 puncte pt ca cika nu afisez bine soldatii...Poate un admin care,(daka) are acces la datele de intrare sa-mi spuna aproximativ diferenta dintre cum imi da mie si cum ar trebui pe vreun test? http://infoarena.ro/job_detail/253398
|
|
|
Memorat
|
|
|
|
•DraStiK
|
 |
« Răspunde #22 : Martie 10, 2009, 11:28:34 » |
|
iau 100 pe evaluatorul de la OJ,mi-am generat o gramada de teste si mi-a dat cum trebuie dar pe evaluatorul de pe site iau pe fiecare test 7 puncte pt ca cika nu afisez bine soldatii...Poate un admin care,(daka) are acces la datele de intrare sa-mi spuna aproximativ diferenta dintre cum imi da mie si cum ar trebui pe vreun test? http://infoarena.ro/job_detail/253398 din cate stiu eu, testele de aici sunt cele de la OJI
|
|
|
Memorat
|
|
|
|
•shnako
Client obisnuit

Karma: 3
Deconectat
Mesaje: 50
|
 |
« Răspunde #23 : Martie 11, 2009, 09:54:39 » |
|
Deci din nou m-a dezamagit evaluatorul de pe infoarena ... Evaluatorul de la OJI imi da 100 de puncte, iar cel de aici, desi imi accepta 4 teste pe restu imi da 0 si per total iau 0. De ce ?! #include <stdio.h> #include <string.h> #include <ctype.h> #define NR 4001 FILE *f, *g; long i, n, k=0, sw, nr[NR], h, j, aux, max, sm; char v[NR][11], t[NR][11], x[13]; void citire (void) { f=fopen("pluton.in", "r"); g=fopen("pluton.out", "w"); fscanf(f, "%ld", &n); fscanf(f, "%c", &v[0][0]); for (i=1;i<=n;i++) { fgets(v[i], 12, f); sw=strlen(v[i])-1; if (!isdigit(v[i][sw])) v[i][sw]='\0'; } }
int main(void) { citire(); for (i=1;i<=n;i++) { nr[i]=0; sw=strlen(v[i])-1; for(j=0;j<=12;j++) x[j]=0; for(j=0;j<=sw;j++) x[j]=v[i][j]; for(j=0;j<sw;j++) for(h=j+1;h<=sw;h++) if(x[j]>x[h]) { aux=x[j]; x[j]=x[h]; x[h]=aux; } sw=0; for (j=1;j<=k;j++) if (strcmp(t[j], x)==0) { sw=1; nr[j]++; break; } if (!sw) { nr[++k]=1; strcpy(t[k], x); } } sw=0; long s=0; fprintf(g, "%ld", k); for (i=1;i<=k;i++) if(nr[i]>max) { s=1; max=nr[i]; strcpy(v[0], t[i]); } else if (nr[i]==max) s++; fprintf(g, "\n%ld\n%ld\n", max, s); sm=strlen(v[0])-1; for (i=0;i<sm;i++) for (j=i+1;j<=sm;j++) if (v[0][i]>v[0][j]) { aux=v[0][i]; v[0][i]=v[0][j]; v[0][j]=aux; } sm=strlen(v[0]); k=0; for (i=1;i<=n;i++) { sw=strlen(v[i])-1; if (sw+1==sm) { strcpy(x, v[i]); for (j=0;j<sw;j++) for (h=j+1;h<=sw;h++) if (x[j]>x[h]) { aux=x[j]; x[j]=x[h]; x[h]=aux; } if (!strcmp(v[0], x)) { k++; fputs (v[i], g); fprintf(g, " "); } if (k==max) break; } } fcloseall(); return 0; }
|
|
|
Memorat
|
|
|
|
•DraStiK
|
 |
« Răspunde #24 : Martie 11, 2009, 12:31:20 » |
|
Deci din nou m-a dezamagit evaluatorul de pe infoarena ... Evaluatorul de la OJI imi da 100 de puncte, iar cel de aici, desi imi accepta 4 teste pe restu imi da 0 si per total iau 0. De ce ?!
primesti 0 puncte pentru ca testele sunt grupate astfel incat sursele ineficiente sa nu primeasca nimic sau punctajul pe masura
|
|
|
Memorat
|
|
|
|
|