Pagini: 1 [2] 3 4   În jos
  Imprimă  
Ajutor Subiect: 171 Sum  (Citit de 23585 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #25 : Decembrie 23, 2007, 12:06:54 »

Incearca sa parsezi citirea si scriere. Vezi mai sus ce a postat gogu Smile.
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
bogdan88
Strain
*

Karma: -3
Deconectat Deconectat

Mesaje: 32



Vezi Profilul
« Răspunde #26 : Decembrie 23, 2007, 12:10:39 »

Scrierea am parsat-o asa cum a spus gogu....dar citirea nu stiu cum Sad
Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« 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 Deconectat

Mesaje: 32



Vezi Profilul
« 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
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« 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 Deconectat

Mesaje: 32



Vezi Profilul
« Răspunde #30 : Decembrie 23, 2007, 14:05:05 »

Asta asa e.. Very Happy. 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 Very Happy
Memorat
bogdan88
Strain
*

Karma: -3
Deconectat Deconectat

Mesaje: 32



Vezi Profilul
« 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
De-al casei
***

Karma: 11
Deconectat Deconectat

Mesaje: 104



Vezi Profilul
« 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=download

Ps: testele personale merg cu succes:D
Memorat
Florian
Nu mai tace
*****

Karma: 125
Deconectat Deconectat

Mesaje: 832



Vezi Profilul
« 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
ciprianf
De-al casei
***

Karma: 11
Deconectat Deconectat

Mesaje: 104



Vezi Profilul
« Răspunde #34 : Ianuarie 03, 2008, 17:04:38 »

scuze daca intrebarile sunt prea simple pt voi dar eu sunt nou pe aici........am modificat dupa cum ai spus tu si tot nu merge http://infoarena.ro/job_detail/119903?action=download .......da, folosesc fisiere
Memorat
Florian
Nu mai tace
*****

Karma: 125
Deconectat Deconectat

Mesaje: 832



Vezi Profilul
« Răspunde #35 : Ianuarie 03, 2008, 17:07:17 »

Cred ca suntem cam off topic. Vezi ca ti`am trimis mesaj privat.   Ok
Memorat
razyelx
Client obisnuit
**

Karma: 0
Deconectat Deconectat

Mesaje: 82



Vezi Profilul
« 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
Moderatori infoarena
Nu mai tace
*****

Karma: 321
Deconectat Deconectat

Mesaje: 926



Vezi Profilul
« Răspunde #37 : Aprilie 26, 2008, 15:16:20 »

Incearca functia totient.
Memorat
fireatmyself
Nu mai tace
*****

Karma: 36
Deconectat Deconectat

Mesaje: 492



Vezi Profilul
« 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 Deconectat

Mesaje: 82



Vezi Profilul
« 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  Very Happy
P.S. am pus si char la matrice
« Ultima modificare: Aprilie 28, 2008, 09:56:49 de către Brestin Sebastian » Memorat
fireatmyself
Nu mai tace
*****

Karma: 36
Deconectat Deconectat

Mesaje: 492



Vezi Profilul
« 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
Nu mai tace
*****

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« 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
Echipa infoarena
Nu mai tace
*****

Karma: 733
Deconectat Deconectat

Mesaje: 1.216



Vezi Profilul
« 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 Smile
« Ultima modificare: Decembrie 27, 2009, 23:34:36 de către Mihai Calancea » Memorat
SpiderMan
Nu mai tace
*****

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« 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
Nu mai tace
*****

Karma: 169
Deconectat Deconectat

Mesaje: 751



Vezi Profilul
« 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
Moderatori infoarena
Nu mai tace
*****

Karma: 150
Deconectat Deconectat

Mesaje: 259



Vezi Profilul
« 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
Nu mai tace
*****

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« 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
Cod:
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
mathboy
Moderatori infoarena
Nu mai tace
*****

Karma: 150
Deconectat Deconectat

Mesaje: 259



Vezi Profilul
« Răspunde #47 : Decembrie 28, 2009, 17:57:15 »

Daca tot nu iese incearca ciurul lui Paul Dan Baltescu. E foarte optimizat Smile
http://infoarena.ro/forum/index.php?topic=2512.0
Memorat
SpiderMan
Nu mai tace
*****

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« 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
Moderatori infoarena
Nu mai tace
*****

Karma: 150
Deconectat Deconectat

Mesaje: 259



Vezi Profilul
« 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
Pagini: 1 [2] 3 4   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines