Afişează mesaje
|
|
Pagini: [1]
|
|
7
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: Mesaje de eroare
|
: Februarie 24, 2009, 21:41:49
|
|
Ce inseamna mai exact "Null pointer assigned"(primele teste merg, iar dupa un anumit test imi tot da eroarea)? Primesc eroarea la un evaluator folosit la OJI, folosesc liste de adiacenta alocate dinamic, cred ca aici e problema, dar nu sunt sigur. La aceeasi problema, pe site nu-mi da nici o eroare.
|
|
|
|
|
9
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 807 Marmelada
|
: Februarie 16, 2009, 22:15:36
|
Pai poti sa faci parcurgerea in latime cu lee (ii cam acelasi lucru). Determinarea drumului minim l-ai facut bine, pe pozitia i din sol[] pui nodul din care ai ajuns in i, adica din nodul sol ai ajuns pe parcursul parcurgerii in nodul i. Eu am numerotat muchiile, si am adaugat in sol[] numarul muchiei prin care am ajuns din sol in i. Ai grija sa numerotezi costurile inainte sa le sortezi, pentru ca cere numarul de ordine (indicele) al costului atribuit fiecarei muchii, si nu costul acesteia. Sper sa te ajute 
Totusi, primesc Killed by signal la testul 3, si nu-mi dau seama de ce. Am alocat dinamic vectorii... nu cred ca e ceva de la test, pt ca am vazut ca in timpul concursului au fost si altii cu eroarea asta, insa la alte teste. 
|
|
|
|
|
10
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 495 Numere 6
|
: Februarie 14, 2009, 17:45:50
|
Am facut retinand impartirile, scazand sau folosind expresia spusa de gabitzish, am pus short peste tot si tot imi iese din timp  ... nu pot sa-mi dau seama ce poate fi, desi algoritmul e cam acelasi cu cel oficial. Un alt hint ar fi bineveit  Btw, daca tot sunt testele de la judetene, cred ca ar fi fost fair sa intre macar algoritmul oficial 
|
|
|
|
|
16
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 431 Medie
|
: Aprilie 25, 2008, 14:05:09
|
Nu este cumva o greseala in enunt, la exemplul 2?  eu vad una: 2 este media aritmetica a 3 si 1 (i,j,k): (3,1,4) Ma insel? 
|
|
|
|
|
17
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 414 Excursie
|
: Aprilie 25, 2008, 08:26:03
|
Am folosit setiosflags(ios::fixed), si merge, insa la testul 5 primesc Killed by signal... presupun ca este o problema legata de memorie, insa nu sunt sigur. http://infoarena.ro/job_detail/185341 E adevarat ca memoria folosita e cea mai mare la t 5 :936. Am incercat sa maresc marimea listei pana la 150.000 (nu cred ca e nevoie..), si tot nu merge. Ceva idei?  Sursa: 1. #include<fstream> 2. #include<math.h> 3. #include<iomanip> 4. #include<stdio.h> 5. #define g 41 6. #define G 50000 7. using namespace std; 8. struct MATRIX 9. { 10. double efort,drum; 11. short value; 12. } ; 13. MATRIX a[g][g]; 14. struct LIST 15. { 16. int x,y; 17. }; 18. 19. LIST lista[G]; 20. int main() 21. { 22. ifstream be ("excursie.in"); 23. ofstream ki ("excursie.out"); 24. int n,m,i,j,x1,x2,y1,y2,e,v; 25. 26. double ef,d,Lmax; 27. be>>n>>m>>Lmax; 28. for (i=1;i<=n;i++) 29. for (j=1;j<=m;j++) 30. be>>a[i][j].value; 31. be>>x1>>y1>>x2>>y2; 32. be.close(); 33. e=1;v=1;int k; 34. lista[1].x=x1; lista[1].y=y1; 35. while (e<=v) 36. { 37. i=lista[e].x; j=lista[e].y; 38. ef=-1; 39. if (i!=x2||j!=y2) 40. { 41. k=0; 42. if (i>1 && (i-1!=lista[1].x || j!=lista[1].y)) ///////////////////// 43. { 44. if (a[i-1][j].value>a[i][j].value) 45. { x1=a[i-1][j].value; y1=a[i][j].value; } 46. else 47. if (a[i-1][j].value<a[i][j].value) 48. { y1=a[i-1][j].value; x1=a[i][j].value; k=1;} 49. else 50. { ef=1; d=1; } 51. if (ef!=1) 52. { d=sqrt((x1-y1)*(x1-y1)+1); 53. if (k) 54. ef=(d*(x1-y1))/2; 55. else 56. ef=d*(x1-y1); } 57. if (a[i-1][j].efort==0 || (a[i-1][j].efort>=a[i][j].efort+ef)) 58. { 59. lista[++v].x=i-1; lista[v].y=j; 60. a[i-1][j].efort=a[i][j].efort+ef; 61. a[i-1][j].drum=a[i][j].drum+d; 62. } 63. } 64. ef=-1; k=0; 65. if (j<m && (j+1!=lista[1].y || i!=lista[1].x)) ///////////////////////////////////// 66. { 67. if (a[i][j+1].value>a[i][j].value) 68. { x1=a[i][j+1].value; y1=a[i][j].value; } 69. else 70. if (a[i][j+1].value<a[i][j].value) 71. { y1=a[i][j+1].value; x1=a[i][j].value; k=1;} 72. else 73. { ef=1; d=1; } 74. if (ef!=1) 75. { d=sqrt((x1-y1)*(x1-y1)+1); 76. if (k) 77. ef=(d*(x1-y1))/2; 78. else ef=d*(x1-y1); } 79. if (a[i][j+1].efort==0 || (a[i][j+1].efort>=a[i][j].efort+ef)) 80. { 81. lista[++v].x=i; lista[v].y=j+1; 82. a[i][j+1].efort=a[i][j].efort+ef; 83. a[i][j+1].drum=a[i][j].drum+d; 84. } 85. } 86. ef=-1; k=0; 87. if (i<n && (i+1!=lista[1].x || j!=lista[1].y)) ///////////////////////////// 88. { 89. if (a[i+1][j].value>a[i][j].value) 90. { x1=a[i+1][j].value; y1=a[i][j].value; } 91. else 92. if (a[i+1][j].value<a[i][j].value) 93. { y1=a[i+1][j].value; x1=a[i][j].value; k=1; } 94. else 95. { ef=1; d=1; } 96. if (ef!=1) 97. { d=sqrt((x1-y1)*(x1-y1)+1); 98. if (k) 99. ef=(d*(x1-y1))/2; 100. else ef=d*(x1-y1); } 101. if (a[i+1][j].efort==0 || (a[i+1][j].efort>=a[i][j].efort+ef)) 102. { 103. lista[++v].x=i+1; lista[v].y=j; 104. a[i+1][j].efort=a[i][j].efort+ef; 105. a[i+1][j].drum=a[i][j].drum+d; 106. } 107. } 108. ef=-1; k=0; 109. if (j>1&& (j-1!=lista[1].y || i!=lista[1].x)) ///////////////////// 110. { 111. if (a[i][j-1].value>a[i][j].value) 112. { x1=a[i][j-1].value; y1=a[i][j].value; } 113. else 114. if (a[i][j-1].value<a[i][j].value) 115. { y1=a[i][j-1].value; x1=a[i][j].value;k=1; } 116. else 117. { ef=1; d=1; } 118. if (ef!=1) 119. { d=sqrt((x1-y1)*(x1-y1)+1); 120. if (k) 121. ef=(d*(x1-y1))/2; 122. else ef=d*(x1-y1); } 123. if (a[i][j-1].efort==0 || (a[i][j-1].efort>=a[i][j].efort+ef)) 124. { 125. lista[++v].x=i; lista[v].y=j-1; 126. a[i][j-1].efort=a[i][j].efort+ef; 127. a[i][j-1].drum=a[i][j].drum+d; 128. } 129. } 130. } 131. e++; 132. } 133. if (a[x2][y2].drum>Lmax) 134. ki<<-1; 135. else 136. ki<<setprecision(3)<<setiosflags(ios::fixed)<<a[x2][y2].efort<<" "; 137. ki<<setprecision(3)<<setiosflags(ios::fixed)<<a[x2][y2].drum; 138. ki<<'\n'; 139. ki.close(); 140. return 0; 141. } E cam lunga dar na.. 
|
|
|
|
|
18
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Ciudat
|
: Aprilie 24, 2008, 22:23:50
|
salut. am rezolvat problema excursie, > job: http://infoarena.ro/job_detail/185238 dar mi se intampla un lucru ciudat: iau 5 puncte  am downloadat testele de la ONI 2007, si evaluand manual merge corect pe primele 10 teste, cu compilatorul borland...dupa asta da error pt ca ocup mai multa memorie decat imi permite, dar cu gnu ar trebui sa mearga.  Iar daca compilez cu dev-c++ si merg ori pe testele linux ori pe cele windows scrie rezultatul dar ori partial, ori cu +e26 sau nu stiu ce numere si litere  chiar e enervant..  personal cred ca am o problema cu scrierea de 3 zecimale: folosesc setprecision din c++, dar nu stiu ce are. Tind sa cred ca exista si alte modalitati(more efficient and less annoying) cu care pot sa rezolv problema. Ma puteti ajuta cumva? ultimele randuri: # if (a[x2][y2].drum>Lmax) # ki<<-1; # else # ki<<setprecision(3)<<a[x2][y2].efort<<" "<<setprecision(3)<<a[x2][y2].drum; # ki<<'\n'; # ki.close(); # return 0; folosesc pentru efort si drum double long, pentru value short, pentru celelalte short. Mersi inainte 
|
|
|
|
|
19
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 689 Carti
|
: Aprilie 20, 2008, 22:59:09
|
Care-i smecheria?  iau numai 20 de puncte... personal procedez asa la fiecare configuratie: qsort, ca sa fie in sir, dupa care iau un vector 'seged' cu toate elementele=0; un for pana la m, si pentru fiecare numar dau 1, sau seged[ i ]+=i-1 daca seged[ i ]<k, dupa care seged[i-1]=0; in final numar numerele nenule, si daca %2==0 castiga bob ... Este ceva in neregula cu ideea? (poate nu am inteles bine problema  1. #include<fstream> 2. #include<cstdlib> 3. using namespace std; 4. ifstream be ("carti.in"); 5. ofstream ki ("carti.out"); 6. typedef struct 7. { 8. int kk, mm; 9. } S; 10. S c[15]; 11. 12. int compare (const void*a,const void*b) 13. { 14. return (*(int*)a-*(int*)b); 15. } 16. int a[15][15]; 17. int main() 18. { 19. int m,k,n,i,j,s,SZ,seged[15]; 20. char x; 21. be>>n; 22. for (i=0;i<n;i++) 23. { 24. be>>m>>k; 25. c[i].kk=k; c[i].mm=m; 26. for (j=0;j<m;j++) 27. { 28. be>>x; 29. if (x>='A') 30. { 31. switch (x) 32. { 33. case 'A': { a[i][j]=1;break; } 34. case 'J': { a[i][j]=11; break; } 35. case 'Q': { a[i][j]=12; break; } 36. case 'K': { a[i][j]=13; break; } 37. } 38. } 39. else 40. if (x=='1') 41. {a[i][j]=10; be>>x;} 42. else 43. a[i][j]=x-48; 44. } 45. } 46. be.close(); 47. for (i=0;i<n;i++) 48. { 49. m=c[i].mm; k=c[i].kk; 50. qsort(a[i],m,sizeof(int),compare); 51. SZ=0; 52. for (j=0;j<15;j++) 53. seged[j]=0; 54. for (j=0;j<m;j++) 55. { 56. seged[a[i][j]]=1; 57. if (seged[a[i][j]-1]<k && seged[a[i][j]-1]>0 && j) 58. { 59. seged[a[i][j]]+=seged[a[i][j]-1]; 60. seged[a[i][j]-1]=0; 61. } 62. } 63. for (j=0;j<m;j++) 64. if (seged[a[i][j]]>0) 65. SZ++; 66. if (SZ%2==0) 67. ki<<"Bob"; 68. else 69. ki<<"Alice"; 70. if (i!=n-1) 71. ki<<"\n"; 72. } 73. ki<<"\n"; 74. ki.close(); 75. return 0; 76. } ultima parte eventual un test puteti sa aratati? in afara de primul si 8.
|
|
|
|
|
20
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: Mesaje de eroare
|
: Aprilie 20, 2008, 21:27:29
|
Mersi mult wefgef!  chiar mi-a cam trecut cheful de la site la inceput cand tot imi dadea mesaje de eroare, dar acum incep sa inteleg. Si sunt de acord in ceea ce priveste progresul  totusi, as avea inca o ultima intrebare: daca folosesc borland la oni, dar scriu programul asa incat se poate fi compilat si cu gnu, ar fi mai bine sa aleg gnu? Mersi mult, chiar m-ati ajutat. 
|
|
|
|
|
22
|
infoarena - concursuri, probleme, evaluator, articole / Informatica / Prima data la ONI:)>>?
|
: Aprilie 20, 2008, 14:45:18
|
Buna:) m-am calificat si eu anul acesta la ONI, pentru prima data  , si, mai fiind o saptamana, as dori sa ii intreb cate ceva pe cei care au mai fost: folosesc borlandc++ 3.1 ( acela vechi ), si mi-am dat seama citind si prin forum si si din experienta ca compilatorul este cam slab. as dori sa intreb ce compilatoare exista la oni, si daca compilatorul c++ se blocheaza la un a[50000][50000] (da eroare si la mai putin  ) atunci prin GNU C++ nu-i nici o problema? (asta daca se foloseste gnu la nationale)  .
|
|
|
|
|
23
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: Mesaje de eroare
|
: Aprilie 17, 2008, 17:40:15
|
svalentin..cu tot respectul, de ce avem voie sa folosim BorlandC? cred ca toata lumea are dreptul la ce mediu doreste. Inteleg ca pe infoarena compilatorul este GNU C++, si nu am nimic in contra, in afara de un lucru: si anume ca nu este destul de detaliat descris ce nu este voie si ce trebuie modificat fata de BC++ ca sa fie compilat corect de GNU C. Azi am intalnit si eu problema compilatorului, la #180777. Cu toate ca am citit atent ce ati scris la borderou (int main cu 0 return, fara getch(), cu si fara .h), totusi sunt nedumerit. Include fileurile trebuie cu .h sau fara, se poate ifstream sau trebuie fopen. Deoarece esti in echipa infoarena, as dori lamuriri, daca se poate. Cateva din erori: Eroare de compilare in evaluator: user.cpp:2:17: error: stdlib: No such file or directory user.cpp:39:3: warning: no newline at end of file user.cpp: In function 'int main()': user.cpp:10: error: 'ifstream' was not declared in this scope... si cateva altele:P Mersi inainte, cu respect. ZB. PS : nu am gasit un topic mai bun unde sa postez, si nu am putut instala GNU C++ (sunt slab)  .
|
|
|
|
|