•wefgef
|
|
« Răspunde #25 : Decembrie 23, 2007, 12:06:54 » |
|
Incearca sa parsezi citirea si scriere. Vezi mai sus ce a postat gogu .
|
|
|
Memorat
|
omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
|
|
|
•bogdan88
Strain
Karma: -3
Deconectat
Mesaje: 32
|
|
« Răspunde #26 : Decembrie 23, 2007, 12:10:39 » |
|
Scrierea am parsat-o asa cum a spus gogu....dar citirea nu stiu cum
|
|
|
Memorat
|
|
|
|
•wefgef
|
|
« Răspunde #27 : Decembrie 23, 2007, 12:48:46 » |
|
Citesti fiecare rand ca un sir de caractere, si apoi iti "construiesti" singur numerele din input.
Oricum, folosirea limbajului Pascal reprezinta un dezavantaj foarte mare in concursuri, ar trebui sa treci in C++.
|
|
|
Memorat
|
omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
|
|
|
•bogdan88
Strain
Karma: -3
Deconectat
Mesaje: 32
|
|
« Răspunde #28 : Decembrie 23, 2007, 13:39:30 » |
|
Pai vreau sa trec in c.....dar nu pot asa brusc, ci pe parcurs
|
|
|
Memorat
|
|
|
|
•wefgef
|
|
« Răspunde #29 : Decembrie 23, 2007, 13:51:02 » |
|
Eu cand am trecut in C++ nu am mai facut niciun program in Pascal desi imi era foarte greu. Te chinui vreo 2-3 luni, insa apoi e lejer.
|
|
|
Memorat
|
omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
|
|
|
•bogdan88
Strain
Karma: -3
Deconectat
Mesaje: 32
|
|
« Răspunde #30 : Decembrie 23, 2007, 14:05:05 » |
|
Asta asa e.. . Da si problema asta ar trebui facuta si in pascal.... Faza e ca nu stiu cat de optim e la mine. Adica calculez phi cu ciurul lui erathostene asa cum ai postat tu pe link, insa ma duc pana la max (numarul cel mai mare din fisier). Inainte de asta am citit numerele intr-un vector si cautam maximul. La sfarsit parcurgeam vectorul in care am salvat numerele din fisier si pt fiecare afisam rezultatul cu scrierea parsata. Banuiesc ca ar trebui sa existe ceva mai rapid, am vazut ca au facut-o cativa in pascal
|
|
|
Memorat
|
|
|
|
•bogdan88
Strain
Karma: -3
Deconectat
Mesaje: 32
|
|
« Răspunde #31 : Decembrie 23, 2007, 22:08:34 » |
|
Totusi de ce nu mariti limita de timp ca nu mi se pare corect. Am doua surse una in cpp si una in pascal. Cea in cpp ia 100 iar in pascal 85 cu 3 TLE
|
|
|
Memorat
|
|
|
|
•ciprianf
|
|
« Răspunde #32 : Ianuarie 03, 2008, 16:54:14 » |
|
Am si eu o intrebare...sunt elev in clasa a9a la CNITV si am inceput sa invatam c++. Problema e ca se apropie olimpiada si vreau sa ma pregatesc asa ca am intrat aici sa ma antrenez....am rezolvat problema 171 Sum dar cand dau la verificator imi da 0 pte cu o eroare de compilare...daca este cineva amambil sa-mi spuna ce trebuie modificat pt ca progul sa mearga.....uitati aici sursa http://infoarena.ro/job_detail/119888?action=downloadPs: testele personale merg cu succes:D
|
|
|
Memorat
|
|
|
|
•Florian
|
|
« Răspunde #33 : Ianuarie 03, 2008, 16:57:40 » |
|
Pai pune in loc de "void main", "int main". In loc de "endl", foloseste "\n", si vezi sa utilizezi fisiere.
|
|
|
Memorat
|
|
|
|
|
•Florian
|
|
« Răspunde #35 : Ianuarie 03, 2008, 17:07:17 » |
|
Cred ca suntem cam off topic. Vezi ca ti`am trimis mesaj privat.
|
|
|
Memorat
|
|
|
|
•razyelx
Client obisnuit
Karma: 0
Deconectat
Mesaje: 82
|
|
« Răspunde #36 : Aprilie 26, 2008, 14:59:22 » |
|
Salut! Ahm... incerc si eu sa rezolv problema. Hai ca is scurt si la obiect. Nu folosesc totient. Fac o preprocesare. I-au toate nr prime pana la 100 000. Observ cu care e dintre ele e divizibil nr meu. Apoi Folosesc metoda ciurului dar modificata sa bifez toti multipli factorilor primi ai nr-ului. Afisez doar ceea ce nu e bifat. Scot timpi buni, la cateva teste. Iau doar 55 pct... apoi iau TLE. Sa fie chiar timpul de vina sau e o rpoblema cu limita undeva? Ceva sugetii va rog...
|
|
|
Memorat
|
|
|
|
•gabitzish1
|
|
« Răspunde #37 : Aprilie 26, 2008, 15:16:20 » |
|
Incearca functia totient.
|
|
|
Memorat
|
|
|
|
•fireatmyself
|
|
« Răspunde #38 : Aprilie 26, 2008, 15:29:30 » |
|
[...] Fac o preprocesare. I-au toate nr prime pana la 100 000. Observ cu care e dintre ele e divizibil nr meu. Apoi Folosesc metoda ciurului dar modificata sa bifez toti multipli factorilor primi ai nr-ului. [...]
Nu e din cauza ca nu folosesti totient. Trebuie faci ciurul o singura data pentru toate cele N intrebari.
|
|
|
Memorat
|
Viata e scurta. Daca nu o putem lungi, macar s-o facem lata.
|
|
|
•razyelx
Client obisnuit
Karma: 0
Deconectat
Mesaje: 82
|
|
« Răspunde #39 : Aprilie 28, 2008, 09:47:32 » |
|
cred ca e o solutie ideea ta, dar in implementarea mea am o matrice de [100001][200001] folosita la salvarea nr. prime cu x. 100001 pt n x-uri si 200001 pt 2*x. Si normal ca treabuia sa mearga ceva prost, nu imi intra in memorie. Oricum mai imi bat capu cu ea asa... daca aveti ceva sugetii nu ezitati P.S. am pus si char la matrice
|
|
« Ultima modificare: Aprilie 28, 2008, 09:56:49 de către Brestin Sebastian »
|
Memorat
|
|
|
|
•fireatmyself
|
|
« Răspunde #40 : Aprilie 28, 2008, 10:18:07 » |
|
chiar daca ai pus char, tu o sa ai 1000001*200001*2 = 40 000 600 002 bytes, ceea ce este enorm. daca nu te prinzi de rezolvare, poti sa citesti solutia oficiala.
|
|
|
Memorat
|
Viata e scurta. Daca nu o putem lungi, macar s-o facem lata.
|
|
|
•SpiderMan
|
|
« Răspunde #41 : Decembrie 27, 2009, 22:59:29 » |
|
Cum fac eu fac cu phi, dar nu stiu, de exemplu stiu ca 5 este cu 8 numere prim, dar nu stiu ce sa fac cu acest numar, pentru ca eu nu stiu ACELE numere si nu stiu cum sa le aflu, si as dori daca se paote cum sa fac un timp mai SCURT. Merci
|
|
|
Memorat
|
|
|
|
•klamathix
|
|
« Răspunde #42 : Decembrie 27, 2009, 23:28:51 » |
|
Cu un post mai sus ai link catre solutia oficiala. E acolo . E colorat. E subliniat
|
|
« Ultima modificare: Decembrie 27, 2009, 23:34:36 de către Mihai Calancea »
|
Memorat
|
|
|
|
•SpiderMan
|
|
« Răspunde #43 : Decembrie 28, 2009, 15:40:22 » |
|
Merci n-am vazut EDIT: De ce iau doar 85 pct? Imi puteti spune ce as putea optimiza? Merci (iau TLE la ultimele 3 teste)
|
|
« Ultima modificare: Ianuarie 05, 2010, 16:45:32 de către Robert Simoiu »
|
Memorat
|
|
|
|
•Mishu91
|
|
« Răspunde #44 : Decembrie 28, 2009, 16:50:15 » |
|
Ai mai mari șanse să fii ajutat dacă descri algoritmul folosit decât dacă postezi o sursă (eu unul nu prea am răbdare să citesc surse, fiecare având stilul lui de a coda, și cu atât mai puțin să găsesc eventuale greșeli în aceste surse).
|
|
|
Memorat
|
|
|
|
•mathboy
|
|
« Răspunde #45 : Decembrie 28, 2009, 17:11:02 » |
|
L.E. : Greseala mea ...fa o optimizare: marcheaza pe unde treci cu 1 ca sa nu mai treci si a 2-a oara.
|
|
« Ultima modificare: Decembrie 28, 2009, 17:30:46 de către Rotaru Dragos Alin »
|
Memorat
|
|
|
|
•SpiderMan
|
|
« Răspunde #46 : Decembrie 28, 2009, 17:14:25 » |
|
Ok algoritmul este cel cu phi, indicatorul lui euler. Aflam, in procedure aha(asa mi-a venit mie) pentru toate numerele mai mici decat 100000 (limita) cu cate numere sunt prime (de exemplu pentru numar 6 o sa gaseasca 2: adica 1 si 5, pentru 5->1,2,3,4). Apoi acest numar il inmultesc cu 2(pe phi) si il inmultesc cu numarul (x). Mai multe detalii Bogdan Stoica, mesajul mai sus. Si alin, e vorbe de TLE, nu de memorie is 2 lucruri diferite, am incercat mai mic nu merge deoarece da eroare, adica incorect . Si crezi ca daca ma duc pana la dublul merge mai repede? Nicidecum si uite aici sursa mea. De ce nu merge? Da incorect var n,x,j,i:longint; sum:int64; v:array[1..200010] of int64; u:array[1..100005] of byte; f,g:text; procedure aha; begin for i:=1 to 100005 do v[i]:=i-1; for i:=2 to 100005 do if u[i]=0 then begin j:=2*i; while j<=100005 do begin u[j]:=1; v[j]:=v[j]-v[i]; j:=j+i; end; end; end; begin aha; assign(f,'sum.in'); assign(g,'sum.out'); reset(f); rewrite(g); readln(f,n); for i:=1 to n do begin readln(f,X); sum:=v[x]*x*2; writeln(g,sum); end; close(f); close(g); end.
|
|
« Ultima modificare: Decembrie 28, 2009, 17:42:03 de către Robert Simoiu »
|
Memorat
|
|
|
|
|
•SpiderMan
|
|
« Răspunde #48 : Decembrie 28, 2009, 18:06:44 » |
|
Nu merge din pacate poate nu merge pentru PASCAL EDIT: am facut cum ai zis, paul db, dar tot asa da la ultimele 3 da TLE
|
|
|
Memorat
|
|
|
|
•mathboy
|
|
« Răspunde #49 : Decembrie 28, 2009, 18:10:26 » |
|
Un motiv in plus sa inveti C++. Nu cred ca ar lua mult sa vezi cum se fac atribuirile, impartirile, declararile unui program etc. E doar o chestie de vointa.
|
|
|
Memorat
|
|
|
|
|