Afişează mesaje
|
Pagini: [1]
|
1
|
infoarena - concursuri, probleme, evaluator, articole / Informatica / Clasament
|
: Martie 29, 2007, 10:50:34
|
OK, problema (de fapt e o particica dintr-un program dar pur si simplu nu pot sa ma concentrez suficient):
Avem un sir de n persoane care intra intr-un turneu. Se da matricea care ne spune cine pe cine bate; sa se alcatuiasca ordinea clasamentului turneului.
Evident, intai se face suma din matricea respectiva ca sa vedem cine are cele mai multe victorii. In caz de egalitate, ne uitam la meciul dintre cei doi. Totusi, nu ma prind cum as putea sa-i sortez. M-am gandit la o sortare simpla, dar nu merge asa usor pentru ca trebuie sa schimbi si matricea cand interschimbi doua persoane nu? Pff. Pls help.
|
|
|
2
|
infoarena - concursuri, probleme, evaluator, articole / Informatica / Răspuns: operatii pe numere mari
|
: Martie 23, 2007, 12:25:06
|
Heh, am incercat si eu am facut adunare, scadere, inmultire cu o cifra, inmultire, factorial, putere adica tot care sa nu aiba impartire.
Ideea cu scaderi cade: scade tu de 10^200 ori 1 din 10^200. Asta nu e deloc randament. Trebuie sa te gandesti EXACT cum faci tu o impartire pe hartie, cum a zis Sima Cotizo.
Dupa impartire ai acces si la aranjamente, combinari...
|
|
|
5
|
infoarena - concursuri, probleme, evaluator, articole / Informatica / Raspuns: c++
|
: Februarie 21, 2007, 12:37:19
|
Am cautat si eu ceea ce cauti acum, am incercat mai multe carti dar cel mai explicit mi s-a parut Herbert Schildt in McGraw-Hill - C++ from the Ground Up. Cat despre cum poti face rost de carte... hmm... exista varianta legala care te costa putin peste 150 RON sau... vorbim pe private
|
|
|
8
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 307 Maxsecv
|
: Februarie 01, 2007, 13:45:03
|
Da, am incercat sa fac o data cu citirea. De fapt... uite sursa: #include <iostream.h> #include <fstream.h>
ifstream in ("maxsecv.in"); ofstream out ("maxsecv.out");
int main () { int max1=0,max2=0,N,*a; register int i,k=0;
a=new int [1000000];
in>>N; for (i=0;i<N;i++) { in>>a[i]; if (!a[i]) k=0; else k++; if (k>max1) max1=k; else if (k>max2) max2=k; }
out<<max1+max2;
delete [] a; return 0; }
Poate imi scapa ceva... oricum de corect e corect ... 6/10
|
|
|
9
|
infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Raspuns: 002 Jocul Flip
|
: Februarie 01, 2007, 11:38:21
|
I. M-am gandit, cum s-a mai zis, sa fac suma de negative si suma de pozitive si daca e mai mare atunci FLIP. La fel, s-a mai spus ca asta nu e solutie (cand faci FLIP strici alte sume care ar putea fi abordate mai "eficient" - dai FLIP la alea, o "sacrifici" pe asta... ma rog, intelegi ideea) II. Backtracking - asta pare a fi cel mai logic... dar totusi... de ce sa te complici? Asa ca ajungi la III. III. Dai FLIP doar la o coloana si o linie nu? Atunci de ce sa nu iei doua for-uri si pentru fiecare linie si fiecare coloana sa dai FLIP, calculezi suma si voila. PS: Totusi, nu am incercat deci... poate vorbesc in dodii.
|
|
|
|