•recviem
Client obisnuit
Karma: -26
Deconectat
Mesaje: 62
|
|
« Răspunde #25 : Februarie 14, 2008, 20:18:53 » |
|
Poate bulesc si eu ceva la citire .. dupa ce am citit caracter cu caracter ( incorect pe toate testele ) am incercat fgets. fgets(line,4800000,stdin); int i=0; while (line[i]!='\n' && line[i]!='\0')
Stiind sigur ca i e multiplu de 8 in while, isi poate da cineva seama daca de aici s-ar putea trage sigsecv ?
|
|
|
Memorat
|
|
|
|
•savim
|
|
« Răspunde #26 : Februarie 14, 2008, 20:20:04 » |
|
Sa nu fi declarat limita prea mica la vector(sau sa-l fi facut prea mare)...ca daca te duci aiurea in momerie iei sigsegv.
|
|
|
Memorat
|
|
|
|
•recviem
Client obisnuit
Karma: -26
Deconectat
Mesaje: 62
|
|
« Răspunde #27 : Februarie 14, 2008, 20:21:15 » |
|
Se poate din cauza ca e prea mare ? M-as mira.. [L.E.] am taiat un 0 la marimea vectorilor si am scapat de sigsecv . acum am incorect
|
|
|
Memorat
|
|
|
|
•savim
|
|
« Răspunde #28 : Februarie 14, 2008, 20:24:58 » |
|
Da, mi s-a intamplat, eu am rezolvat problema cu un vector de 100000, de tip char. Hm...daca iei incorect cu citirea caracter cu caracter, poate bagi limita prea mare la fgets...
|
|
|
Memorat
|
|
|
|
•recviem
Client obisnuit
Karma: -26
Deconectat
Mesaje: 62
|
|
« Răspunde #29 : Februarie 14, 2008, 21:07:33 » |
|
Pot primi si eu un test oficial .. la mine merg toate testele, iar pe oficiale primesc incorect. Nu sunt sigur daca ar trebui sa ma uit la algoritm, la citire, sau la scriere
|
|
|
Memorat
|
|
|
|
•Florian
|
|
« Răspunde #30 : Februarie 14, 2008, 21:38:14 » |
|
Pai vezi pe www.olimpiada.info. Am impresia ca sunt aceleasi teste ca la oji.
|
|
|
Memorat
|
|
|
|
•recviem
Client obisnuit
Karma: -26
Deconectat
Mesaje: 62
|
|
« Răspunde #31 : Februarie 14, 2008, 22:05:53 » |
|
Le-am luat, multumesc .. faptul ca sunt de a 9-a si ma chinui lea ea de cateva ore imi da de gandit Gata, am reusit. Problema era la lungimea stringului..
|
|
« Ultima modificare: Februarie 17, 2008, 11:50:13 de către AleX Pana »
|
Memorat
|
|
|
|
•raduzer
Client obisnuit
Karma: 62
Deconectat
Mesaje: 71
|
|
« Răspunde #32 : Februarie 15, 2008, 12:12:07 » |
|
Testul 6 oficial de pe olimpiada.info are 336.520 de caractere, iar testele 7 si 9 au peste 450.000 de caractere...limita fiind de 60.000...e destul de clar de ce mie imi busea...in orice caz..nu mi se pare corect [L.E.]: in enunt 60.000 se refera la numarul de caracter din textul final, rezulta ca pot fi pana la 480.000 de caractere in fisierul de intrare. Ar fi foarte bine daca s-ar modofica enuntul astfel incat sa se inteleaga corect problema.
|
|
« Ultima modificare: Februarie 15, 2008, 12:25:14 de către Radu Zernoveanu »
|
Memorat
|
|
|
|
•recviem
Client obisnuit
Karma: -26
Deconectat
Mesaje: 62
|
|
« Răspunde #33 : Februarie 15, 2008, 13:43:40 » |
|
Textul transmis are cel mult 60000 caractere. S-a mai discutat, sunt de acord cu tine. Prin 60 000 de caractere se refera la 60 000 de octeti... deci pune 60000*8.
Cam neclar intr-adevar... si '0' si '1' sunt caractere.
|
|
|
Memorat
|
|
|
|
•jupanu92
Client obisnuit
Karma: -86
Deconectat
Mesaje: 76
|
|
« Răspunde #34 : Martie 30, 2008, 11:34:58 » |
|
Aceiasi problema problema asta nu are nimik diferit de aia de la oji si am evaluat sursa mea pe evaluatoru de la oji si am luat 100 de p si aici 0 p imi spune incorect... #include<fstream> using namespace std; int main() {int k,ok,n[10],s,y,j; char c,b,fals[60000000]; long i,z,ultimul=0;
ifstream fin("paritate.in"); ofstream fout("paritate.out");
ok=1;j=0;z=0; fin.get(c);
while(c!='\n') {s=0; for(i=1;i<=7;i++){fin.get(b); n[i]=(char)b; if(n[i]==49)s=s+1;
}
if(s%2==0) {if(c=='0')ok=1; else ok=0; }
else { if(c=='1')ok=1; else ok=0; }
if(ok==0){fals[z]=1; z++; j=1; ultimul=z; } else{ y=0;k=6; for(i=1;i<=7;i++) {if(n[i]==49)if(k==6)y=y+(1*(2*2*2*2*2*2)); else if(k==5) y=y+(1*(2*2*2*2*2)); else if(k==4) y=y+(1*(2*2*2*2)); else if(k==3) y=y+(1*(2*2*2)); else if(k==2) y=y+(1*(2*2)); else if(k==1) y=y+(1*2); else y=y+1; k--; }
fals[z]=y; z++; } fin.get(c); }
if(j){fout<<"NU"<<'\n'; for(i=0;i<=ultimul;i++)if(fals[i]==1) fout<<i<<" ";
} else{fout<<"DA"<<'\n';
for(i=0;i<z;i++) fout<<fals[i];
}
fin.close(); fout.close(); return 0; } Editat de moderator: Nu posta de 2 ori consecutiv pe aceeasi tema. Editeaza mesajul anterior.
|
|
« Ultima modificare: Martie 30, 2008, 11:47:35 de către Stefan Istrate »
|
Memorat
|
|
|
|
•fireatmyself
|
|
« Răspunde #35 : Martie 30, 2008, 17:05:52 » |
|
depasesti memoria. acolo ai declarat 120MB
|
|
|
Memorat
|
Viata e scurta. Daca nu o putem lungi, macar s-o facem lata.
|
|
|
•jupanu92
Client obisnuit
Karma: -86
Deconectat
Mesaje: 76
|
|
« Răspunde #36 : Martie 30, 2008, 17:11:10 » |
|
Vreau sa te intreb ceva am acolo in cerinta spune ca in fisierul de intrare exista o singura linie si se termina cu \n si eu fac citirea pana la \n si imi da time limit exces dupaia fac while(fin.get(c)) si acu nu imi mai da time limit exces dar imi zice incorect ......
|
|
|
Memorat
|
|
|
|
•fireatmyself
|
|
« Răspunde #37 : Martie 30, 2008, 17:31:35 » |
|
fa un debug pe exemplu sau pe un test cu input mai mare. vezi daca iti citeste corect sirul. in principiu merge ce ai spus tu. poti sa incerci si urmatorul cod: fin>>c; do{ //programul tau fin>>c; while (c!='\n');
|
|
|
Memorat
|
Viata e scurta. Daca nu o putem lungi, macar s-o facem lata.
|
|
|
•jupanu92
Client obisnuit
Karma: -86
Deconectat
Mesaje: 76
|
|
« Răspunde #38 : Martie 30, 2008, 18:08:27 » |
|
deci uitete si tu cu \n acu am schimbat ce ai zis tu si uite ce mesaje imi da Test Timp executie Memorie folosita Mesaj Punctaj/test Punctaj/grupa 1 20ms 368kb Killed by signal 11(SIGSEGV). 0 0 2 24ms 368kb Killed by signal 11(SIGSEGV). 0 3 20ms 372kb Killed by signal 11(SIGSEGV). 0 4 24ms 376kb Killed by signal 11(SIGSEGV). 0 0 5 24ms 372kb Killed by signal 11(SIGSEGV). 0 6 24ms 376kb Killed by signal 11(SIGSEGV). 0 7 24ms 364kb Killed by signal 11(SIGSEGV). 0 8 20ms 372kb Killed by signal 11(SIGSEGV). 0 0 9 44ms 368kb Killed by signal 11(SIGSEGV). 0 10 20ms 376kb Killed by signal 11(SIGSEGV). 0 Punctaj total 0 si doar sursa mea a luat 100 de puncte pe evaluatorul de la oji .. deja disper eu totusi cred ca testele de aici nu se termina cu '\n' baga te rog id meu in lista ta ca sa vb pls marius_bv21
|
|
« Ultima modificare: Martie 31, 2008, 17:32:24 de către Popescu Marius »
|
Memorat
|
|
|
|
•fireatmyself
|
|
« Răspunde #39 : Martie 30, 2008, 20:06:56 » |
|
functia get 'sare' peste '\n'. am tot incercat sa schimb lucruri "dubioase" din sursa ta... nu imi dau seama din ce cauza iei 'incorect', dar am o observatie: if(k==6)y=y+(1*(2*2*2*2*2*2)); else if(k==5) y=y+(1*(2*2*2*2*2)); else if(k==4) y=y+(1*(2*2*2*2)); else if(k==3) y=y+(1*(2*2*2)); else if(k==2) y=y+(1*(2*2)); else if(k==1) y=y+(1*2); else y=y+1; poate fi rescrisa ca Incearca sa rescrii sursa de la 0. eu asa fac cand nu ma prind de buguri
|
|
|
Memorat
|
Viata e scurta. Daca nu o putem lungi, macar s-o facem lata.
|
|
|
•jupanu92
Client obisnuit
Karma: -86
Deconectat
Mesaje: 76
|
|
« Răspunde #40 : Martie 31, 2008, 09:15:00 » |
|
1<<k inseamana cumva 2 la puterea k ?? ? cred ca da.... dar oricum nu cred ca asta ar fi greseala :d ms pentru sfat
|
|
|
Memorat
|
|
|
|
•cos_min
|
|
« Răspunde #41 : Martie 31, 2008, 10:51:43 » |
|
|
|
|
Memorat
|
vid...
|
|
|
•toni2007
|
|
« Răspunde #42 : Martie 31, 2008, 21:40:31 » |
|
problema asta a mai fost data la ACM Varna 1992 (din intamplare am gasit-o intr-o culegere acum trei zile ) asta ca o simpla curiozitate
|
|
|
Memorat
|
|
|
|
•jupanu92
Client obisnuit
Karma: -86
Deconectat
Mesaje: 76
|
|
« Răspunde #43 : Aprilie 03, 2008, 16:49:05 » |
|
Am refacut pr si am luat numai 60 de p .. iau pe testu 5 6 7 incorect .. puteti sa imi spuneti si mie ce au diferit testele alea sau de ce ...
|
|
|
Memorat
|
|
|
|
•cos_min
|
|
« Răspunde #44 : Aprilie 03, 2008, 16:52:14 » |
|
Am refacut pr si am luat numai 60 de p .. iau pe testu 5 6 7 incorect .. puteti sa imi spuneti si mie ce au diferit testele alea sau de ce ...
De ce nu iti iei testele oficiale si sa verifici singur? Chiar nu cred ca cineva poate ghici ce greseala ai tu in cod.
|
|
|
Memorat
|
vid...
|
|
|
•jupanu92
Client obisnuit
Karma: -86
Deconectat
Mesaje: 76
|
|
« Răspunde #45 : Aprilie 03, 2008, 16:55:42 » |
|
Gata am gasit eroarea am luat 100 de p
|
|
|
Memorat
|
|
|
|
•zbarni
Strain
Karma: 3
Deconectat
Mesaje: 23
|
|
« Răspunde #46 : Decembrie 17, 2008, 16:02:33 » |
|
E ceva interesant la aceasta problema: singur, am luat 30 de puncte, apoi am trimis solutia oficiala de la judeteana.. si a luat 0 puncte. Poate cineva sa ma ajute?
|
|
|
Memorat
|
|
|
|
•cosmin79
Strain
Karma: 36
Deconectat
Mesaje: 46
|
|
« Răspunde #47 : Iunie 25, 2009, 22:31:06 » |
|
Salut.Am incercat sa fac si eu problema asta,dar iau incorect pe 4 teste.Testele sunt cele de la oji?Am incercat toate testele de la oji si imi merg.Am incercat sa fac citirea si cu fgets si caracter cu caracter,dar oricum ar fi raman incorecturile,deci nu cred ca-i de la citire.Ce ar putea fi?
|
|
|
Memorat
|
|
|
|
•gabor_oliviu1991
|
|
« Răspunde #48 : Iunie 25, 2009, 23:38:23 » |
|
M-am uitat peste evalu' de la sursa ta. Si eu aveam aceleasi teste pe care nu mergea. Eu dupa ce citesc paritatea unei secvente de 7 biti care urmeaza si verific daca nu e '\n', iar daca e bag un break; . Prima varianta care nu a mers era ca citeam cei 8 biti dintr-o secventa si dupa o procesam (daca primu bit era '\n' imi procesa niste informatii aiurea). Bafta!
|
|
|
Memorat
|
|
|
|
•cosmin79
Strain
Karma: 36
Deconectat
Mesaje: 46
|
|
« Răspunde #49 : Iunie 26, 2009, 10:19:08 » |
|
Poti sa fii putin mai explicit? Uite cum fac eu citirea caracter cu caracter: while (scanf("%c",&x)!=EOF) { if (r==8) { caractere++; rezolva(); r=0; } if ((int)x>=48 && (int)x<=49) { v[++r]=x-'0'; continue; } else continue; } if (r) { caractere++; rezolva(); }
Foloseste tag-ul [ code ] cand postezi cod.
|
|
« Ultima modificare: Iunie 26, 2009, 10:39:33 de către Paul-Dan Baltescu »
|
Memorat
|
|
|
|
|