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

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« Răspunde #25 : Mai 02, 2011, 17:53:37 »

De ce sa te acuz, am zis doar ca trebuie sa faca limitele de la inceput mai stranse, ca sa stim pe viitor, si ca ar fi corect sa se evalueze pe 0,1 secunde, la Nationala nu s-ar fi intamplat asa ceva Tongue.
Memorat
Protoman
Infoarena Monthly
De-al casei
*****

Karma: 119
Deconectat Deconectat

Mesaje: 128



Vezi Profilul
« Răspunde #26 : Mai 02, 2011, 18:13:46 »

Cred ca ar fi mai util in locul comentariilor pe forum sa incerci sa aprofundezi materia pentru anul viitor, poate o sa vezi cum e si la baraj la nationala...
Memorat
SpiderMan
Nu mai tace
*****

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« Răspunde #27 : Mai 02, 2011, 18:44:11 »

O sa incerc, la nationala m-am incurcat urat de tot Tongue, nu vreau sa mai vorbesc despre asta.
Memorat
fm_strategy
Strain


Karma: 4
Deconectat Deconectat

Mesaje: 13



Vezi Profilul
« Răspunde #28 : Mai 02, 2011, 18:46:04 »

Am inteles, v-ati agitat mai mult decat altii care au acum si ei maxim. Sunteti seriosi si asta e admirabil. Dar organizatorii vor sa atraga lume si nu prea o sa se intample asta daca se ia 20 de puncte cu o idee corecta, dar implementata mai lejer. Robert, tu oricum esti pe locul 2 sau ceva de genul, chiar mori de cine e in spatele tau ? Las' ca demonstrati voi mai incolo ca sunteti smecheri Very Happy.

Altii in schimb nu sunt pe locul 2 si au gandit si testat problema astfel incat sa obtina cat mai multe rezultate corecte in 0,1s, nestiind ca in final se va evalua pe 1s. Oricum nu e vorba de loc, punctaj, sau dinastea, e vorba de principiu, nu stiu ce e asa greu de inteles ca pe unii oameni ii intereseaza si ca principiul sa fie corect si nu doar rezultatul personal cum au recunoscut unii.

Nici la reevaluarea cauzata de citirea din fluxuri nu mi s-a parut normal sa fie marit timpul stabilit in enunt, chiar daca a fost macar partial in favoarea mea. Lumea care a patit-o din cauza fluxurilor a atras atentia ca pe viitor sa fie mai atenti organizatorii si sa anunte ce compilator folosesc si au propus eventual sa fie updatat compilatorul si sa se reevalueze asa, nu sa se mareasca timpul. Si oricum timpul nu s-a marit de 10 ori, daca se marea de 10 ori noi de exemplu luam maxim atunci. In schimb acum nu inteleg de ce s-a marit chiar de 10 ori. Totusi, e ca si cum ai mari de la 1s la 10s sau de la 2s la 20s, mi se pare exagerat.

In legatura cu ideea ca ar trebui sa fie limite mai lejere fiindca sunt si studenti (obisnuiti cu alt gen de concursuri) sunt partial de acord, insa e offtopic. E o sugestie pt alte probleme si nu justifica marirea de 10 ori a timpului de la o problema dupa ce sursele au fost deja trimise pe enuntul initial.

Asa putem reevalua problema cu timp 0.25s , cu timp 0,5s , cu timp 0,75s, cu timp 1s si obtinem punctaje si clasamente diferite. Pe ce criteriu s-a ales 1s si nu alta valoare? Cred ca reevaluarea ar trebui sa se faca pt 0,1s daca asa a fost enuntul, mai ales ca timpul tine exclusiv de eficienta algoritmului si nu sunt motive de gen citire cum a fost la prima runda (si repet, si atunci timpul nu a fost marit de 10 ori)
Memorat
eudanip
Echipa infoarena
Nu mai tace
*****

Karma: 307
Deconectat Deconectat

Mesaje: 703



Vezi Profilul
« Răspunde #29 : Mai 02, 2011, 19:06:56 »

Eu nu inteleg o chestie daca ma puteti ajuta. Eu am trimis sursa si la safeu si la razboi si mi sa evaluat doar cea de la safeu iar cea de la razboi nici macar nu apare ca problema trimisa desi eu va ASIGUR ca am trimis-o la fel de bine ca si cea de la safeu. Poate sa imi explice cineva ce sar fi putut intampla ca sa am si eu pacea sufleteasca ca sunt nervos rau pe chestia asta(am pierdut 400 de puncte la f11 asta pana acuma).

PS: singura chestie e ca sursa de la razboi am retrimis-o in ultimul minut. Atata si nu cred ca poate avea legatura cu asta.
Memorat
SpiderMan
Nu mai tace
*****

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« Răspunde #30 : Mai 02, 2011, 19:12:21 »

Uita-te la surse trimise, la tine in profil, si trimite-mi tot ( adica copiaza numele si data ), poate te pot ajuta Smile.
Memorat
eudanip
Echipa infoarena
Nu mai tace
*****

Karma: 307
Deconectat Deconectat

Mesaje: 703



Vezi Profilul
« Răspunde #31 : Mai 02, 2011, 19:17:59 »

1   8   cpp   [AP][Gteam]8.cpp   2011-05-01 23:27:59
2   5   cpp   [AP][Gteam]5.cpp   2011-04-10 23:04:41
3   4   cpp   [AP][Gteam]4.cpp   2011-04-10 23:04:22
4   3   cpp   [AP][Gteam]3.cpp   2011-04-10 23:04:05
5   2   cpp   [AP][Gteam]2.cpp   2011-03-19 14:18:18
6   1   cpp   [AP][Gteam]1.cpp   2011-03-19 14:18:06

Asta imi apare. Imi apare ca nu am trimis sursa razboi desi eu stiu sigur ca am trimis-o si ca mi-a zis ca a fost trimisa cu succes.
Cel mai nasol e ca safeu mi-a luat-o iar razboi NU.

Sper ca in ultimul minut ala in care am trimis la razboi sa nu fi fost ceva gen: mi-a sters ultima sursa de la razboi si cand sa o inlocuiasca cu cea noua s-a terminat concursul.
Memorat
SpiderMan
Nu mai tace
*****

Karma: -463
Deconectat Deconectat

Mesaje: 937



Vezi Profilul
« Răspunde #32 : Mai 02, 2011, 19:24:40 »

Cred ca ai trimis un ultimul minut, pana s-o incarcat pe site o trecut timpul limita, si s-or sters amandoua. Mi s-a intamplat si mie pe infoarena ceva gen Tongue.
[LE] Sau .... poate ca ceasul de la tine de la PC ( sau unde te-ai uitat ) era mai in urma decat cel de pe F11 Confused
Memorat
eudanip
Echipa infoarena
Nu mai tace
*****

Karma: 307
Deconectat Deconectat

Mesaje: 703



Vezi Profilul
« Răspunde #33 : Mai 02, 2011, 19:31:08 »

Cred ca e prima varianta ca daca era a doua nu as mai fi putut trimite nimic in plus. Da trist, trist rau. Cer scuze la echipa. Nu mas fi asteptat la o prostie ca asta.
Memorat
vlad.manea
Moderator
Strain
*****

Karma: 10
Deconectat Deconectat

Mesaje: 48



Vezi Profilul
« Răspunde #34 : Mai 02, 2011, 19:51:37 »

1   8   cpp   [AP][Gteam]8.cpp   2011-05-01 23:27:59
2   5   cpp   [AP][Gteam]5.cpp   2011-04-10 23:04:41
3   4   cpp   [AP][Gteam]4.cpp   2011-04-10 23:04:22
4   3   cpp   [AP][Gteam]3.cpp   2011-04-10 23:04:05
5   2   cpp   [AP][Gteam]2.cpp   2011-03-19 14:18:18
6   1   cpp   [AP][Gteam]1.cpp   2011-03-19 14:18:06

Asta imi apare. Imi apare ca nu am trimis sursa razboi desi eu stiu sigur ca am trimis-o si ca mi-a zis ca a fost trimisa cu succes.
Cel mai nasol e ca safeu mi-a luat-o iar razboi NU.

Sper ca in ultimul minut ala in care am trimis la razboi sa nu fi fost ceva gen: mi-a sters ultima sursa de la razboi si cand sa o inlocuiasca cu cea noua s-a terminat concursul.

depune te rog o contestatie la [email protected] cu datele echipei, ca sa avem in record. si investigam cu cei de la IT mai departe cazul tau.
Memorat
vlad.manea
Moderator
Strain
*****

Karma: 10
Deconectat Deconectat

Mesaje: 48



Vezi Profilul
« Răspunde #35 : Mai 02, 2011, 20:03:24 »

Observ că s-a iscat o discuție aprinsă pro-contra reevaluării de 1 secundă. Consider corect să explicăm ce s-a întâmplat. Pe scurt, când am primit arhiva, nu am văzut fișierele .ok și le-am generat cu sursa oficială. Sursa oficială a generat teste greșite, ceea ce am observat azi dimineață în urma contestațiilor (pentru care vă mulțumim), fapt pentru care am realizat ulterior o sursă de la 0 în C++. Deoarece spațiul stărilor era mare, surse care implementau coada, vectorii diferit (STL, versus de mână) obțineau punctaje mai mici. Am considerat corectă în principal ideea de rezolvare și în secundar super optimizarea - pentru care îi felicit pe băieți.  Weightlift Acordarea limitei de 1s/test a fost în avantajul celor care rezolvaseră problema corect, dar au folosit Q.push(x); în loc de Q[++sf] = x; Ne cerem scuze pentru inconveniențe, în special celor care s-au chinuit să rezolve de 0.1 și le urăm succes tuturor în continuare.
Memorat
vlad.manea
Moderator
Strain
*****

Karma: 10
Deconectat Deconectat

Mesaje: 48



Vezi Profilul
« Răspunde #36 : Mai 02, 2011, 20:05:09 »

Menționez că, dacă vreunul dintre voi are de depus o contestație nominală, le primim și le rezolvăm după un mail cu numele echipei, problema și ...problema la [email protected]
Memorat
vlad.manea
Moderator
Strain
*****

Karma: 10
Deconectat Deconectat

Mesaje: 48



Vezi Profilul
« Răspunde #37 : Mai 02, 2011, 21:41:03 »

Sursa oficială inițială a prof. Sergiu Corlat (.pas de 0.1 secunde, presupusă a fi greșită) rezolvă problema corect, dar doar în altă versiune de FPC (un concurent ne-a demonstrat cu 2.4.2). În 2.2.2, însă, ea nu prinde unele teste. În orice caz, cea compilată cu 2.4.2 depășește 1 secundă la evaluare pe unele teste. În concluzie, domnul profesor NU a greșit sursa oficială, iar limita de 1s este rezonabilă.
« Ultima modificare: Mai 02, 2011, 22:09:43 de către Vlad Manea » Memorat
stocarul
Nu mai tace
*****

Karma: 49
Deconectat Deconectat

Mesaje: 203



Vezi Profilul
« Răspunde #38 : Mai 02, 2011, 22:13:11 »

Cred că a fost evident pentru toată lumea că o soluție de complexitate (N*M)2 nu poate să intre în timpul de 0.1 sec decât dacă este foarte foarte (exagerat de) optimizată (mai ales din cauză că necesită foarte multă memorie). Eu încă sunt mirat că totuși a reușit cineva să găsească o astfel de soluție. Eu eram mai mult decât sigur că soluția "oficială" are o complexitate mai bună.

După părerea mea, dacă se dorea să se lase un timp mai lejer la problemă, se putea face asta în timpul concursului. Cu cel puțin 24h înainte de final. Eventual participanții să fi fost anunțați prin eMail. Nu mi se pare normal să se schimbe regulile unui joc după ce acesta a fost terminat. Nici măcar dacă nu s-ar putea face nicio soluție care să rezolve problema în 0.1 sec. Nu-mi amintesc ca în ultimii ani să se fi schimbat limita de timp sau restricțiile unei probleme la vreun concurs serios, după terminarea acestuia.
Memorat
vlad.manea
Moderator
Strain
*****

Karma: 10
Deconectat Deconectat

Mesaje: 48



Vezi Profilul
« Răspunde #39 : Mai 02, 2011, 23:27:41 »

Motivele pentru care am mărit timpul cred ca sunt (mai) clare. Ne-am dat seama că sursa oficială, compilată cu 2.2.2, nu lua toate testele abia după contestații, deci runda era terminată. Sursa oficială nu a recurs la optimizările pe care le-au găsit băieții cu 0.1s, deci nu am considerat necesar să păstrăm 0.1s ca să intre obligatoriu cu optimizări. Pe scurt, nu a fost acesta scopul problemei, deși am fi fost bucuroși să ne dăm seama de ea.

Totuși, diferența de la 30p la 200p pentru respectiva optimizare nu se justifică. Complexitatea timp e aceeași. Dacă sursa oficială (compilată cu 2.2.2) rezolva corect testele, rămânea 0.1 și nu era nimic de observat. Dar nu am avut norocul. Aceeași sursă (compilată cu 2.4.2) rezolvă corect, dar depășește 1s pentru câteva! O sursă C++ asemănătoare se încadrează în 1s. Adevărul e la mijloc, așadar 1s este o limită ok din punctul de vedere al surselor oficiale.

Este suspect pentru Cosmin (și nu numai) că nu am păstrat 0.1s - și are și el dreptate! Dacă știam de problemă, o remediam în timpul rundei și (cu mare probabilitate) schimbam atunci tot la 1s. În orice caz, am răspuns cum am considerat mai bine și mai prompt acestor probleme, și în avantajul celor care au rezolvat corect problema, indiferent de abordare, i/o, structuri etc.

Nu am organizat concursul pentru a fi neserios și nici pentru a promova anumiți concurenți selectați de noi. S-ar putea face asta și direct, fără un concurs în care să investim noi timp și resurse. Sunt de acord că unele decizii nu sunt perfecte, dar e imposibil să se întâmple așa ceva. Vom căuta să fim mai atenți la sursele și testele oficiale în următoarele runde.
Memorat
fm_strategy
Strain


Karma: 4
Deconectat Deconectat

Mesaje: 13



Vezi Profilul
« Răspunde #40 : Mai 03, 2011, 12:36:29 »

E bine ca macar acum s-a explicat de ce s-a reevaluat problema cu 1s. Dar partea cu in avantajul celor care au rezolvat problema ar trebui completata cu dar nu si-au dat seama ca nu intra in 0.1s si in dezavantajul celor care au exclus de la inceput solutia de complexita O(n2*m2)  fiindca si-au dat seama ca nu intra in timp (cel putin nu fara niste optimizari pe care nu stiau sa le faca dar nici cei care au primit 200 in urma reevaluarii nu au stiut sa le faca).. Eu consider ca si alte echipe aveau o sansa sa rezolve problema de 200 stiau de la inceput de timpul de 1s insa au avut castig de cauza cei care nici macar nu s-au gandit sau nu si-au dat seama ca solutia lor nu are nicio sansa sa intre in 0.1s.
Memorat
stocarul
Nu mai tace
*****

Karma: 49
Deconectat Deconectat

Mesaje: 203



Vezi Profilul
« Răspunde #41 : Mai 03, 2011, 12:58:43 »

Toate persoanele care aveau (n*m)2 neoptimizat știau că nu vor lua punctajul maxim. Probabil majoritatea se așteptau la cel mult jumătate din punctajul problemei.
Sincer, eu nu văd care ar fi fost problema dacă o sursă care merge de 10 ori mai prost decât o altă sursă primește un punctaj de 6-7 ori mai mic decât acea sursă. Eu chiar cred că cei care au muncit să rezolve problema conform cerinței din timpul concursului se simt total dezavantajați.

ps: echipa mea nu se numără printre cele dezavantajate !!
Memorat
spatarel
Strain
*

Karma: 31
Deconectat Deconectat

Mesaje: 37



Vezi Profilul WWW
« Răspunde #42 : Mai 03, 2011, 23:28:22 »

Am citit multe discutii in contradictoriu pe tema problemei safeu si marturisesc ca imi plac discutiile in contradictoriu, insa, am imbatranit si stiu ca nu aduc nimic bun. Eu va propun sa incheiem discutia si sa ramanem cu un algoritm dragut. Concret, am sa va prezint optimizările pe care le-au găsit băieții cu 0.1s.

I. Solutia evidenta (pentru mine):
Complexitate timp: O(N*M*N*M)
Complexitate spatiu: O(N*M*N*M)

Se observa ca, deoarece pe tabla exista un singur seif cu Pocalul (X) si un singur spatiu liber (.), indiferent ce secventa de mutari am realiza, vom ajunge intr-o stare care poate fi caracterizata in mod unic prin pozitiile spatiului liber si al seifului.

Astfel, identificam o functie bijectiva intre o stare si multimea [1;N]x[1;M]x[1;N]x[1;M].

In continuare, stiind ca un seif obisnuit (c) si seiful cu Pocalul (X) se pot muta peste spatiul liber (.), putem concluziona ca urmatoarele tranzitii intre stari sunt permise:
1) mutarea spatiului liber (.) peste un vecin, daca vecinul este un safu obisnuit (c)
2) interchimbarea spatiului liber (.) cu seiful cu Pocalul (X), daca acestea sunt vecine

In final, stim ca starea initiala a seifurile se gaseste in fisierul de intrare, iar starea finala este de forma: (1,1,x,y)

Am construit un graf cu N*M*N*M varfuri si cel mult 4*N*M*N*M, in care avem de calculat cel mai scurt drum de la starea initiala la una din starile finale, stiind ca muchiile sunt ponderate egal. Cu o parcurgere in latime obtinem timpul optim pentru rezolvarea acestei probleme.

II. O Solutie interesanta:
Complexitate timp: O(N*M*N*M)
Complexitate spatiu: O(N*M)

Observam (dupa ce descoperim ca sursa anterioara nu intra in 0,1s pentru N = 50, M = 50) ca, in principal, trebuie sa cautam o modalitate prin care sa mutam seiful cu Pocalul (X) de pe o pozitie oarecare, pe o pozitie invecinata. Insa, acest lucru nu se poate face direct. Pe drumul optim, intre doua mutari succesive ale seifului cu Pocalul (X) trebuie sa mutam de cateva ori spatiul liber (.). Mai precis, imediat dupa ce a fost mutat seiful cu Pocalul (X), spatiul liber (.) ocupa unul din vecinii seifului cu Pocalul (X) (pozitia din care a venit), iar inainte sa fie mutat din nou, spatiul liber (.) ocupa un alt vecin (pozitia pe care se va duce).

Astfel, observam ca, daca pentru o pozitie fixata a seifului cu Pocalul (X), vom calcula toate drumurile optime prin care spatiul liber (.) se poate muta din orice pozitie vecina a seifului cu Pocalul (X) in orice alta pozitie vecina a seifului cu Pocalul (X), fara a muta seiful cu Pocalul (X), vom putea reformula problema astfel:

Reducem numarul de stari la multimea [1;N]x[1;M]x[1;4], reprezentand pozitia seifului cu Pocalul (X) si pozitia spatiului liber (.), stiind ca acesta nu poate fi decat vecin seifului cu Pocalul (X).

Observam ca folosind operatia de interschimbare si in baza timpilor de mutare a spatiului liber (.), putem determina tranzitiile dintre stari.

In final, observam ca starea initiala s-ar putea sa nu faca parte din multimea starilor reduse, si trebuie sa calculam distanta de la starea initiala la cele 4 stari similare ale ei, acestea devenind starile initiale din noua problema, iar costul de a plecare din ele este nenul. Starea finala este (1,1,x).

Am construit un graf cu N*M varfuri si cel mult 4*N*M, in care avem de calculat cel mai scurt drum de la una din starile initiale la una din starile finale, stiind ca muchiile sunt ponderate. Cu un algoritm eficient de calcularea a drumului optim, putem realiza acest lucru intr-o complexitate rezonabila.


III. Solutia mai buna (o fi una si mai buna?):
Complexitate timp - cazul mediu: O(N*M)
Complexitate timp - cazul defavorabil: O(N*M*N*M)
Complexitate spatiu: O(N*M*N*M)

Am observat in solutia anterioara aparent mult efort pentru nimic. Dar, solutia anterioara are ceva buna si ceva rau... poate putem sa facem o solutie in care pastram ce e bun si scapam de ce e rau!

Ce e bun: Reduce numarul de stari ale problemei! Era evident ca solutia I nu putea fi optimizata, decat prin reducerea numarului de stari (sau prin artificii in assembler care nu fac obiectul algoritmicii)! Acest lucru vine cu un pret: suntem obligati sa calculam distantele dintre cele 4 stari cu aceeasi pozitie a seifului cu Pocalul (X) - acest lucru trebuie sa-l facem de N*M ori iar o astfel de operatie dureaza O(N*M) timp, deci... nu am rezolvat nimic! Dar, stai! Oare asa sa fie si pe cazul mediu? Nu cumva, pe cazul mediu, mutarea spatiului liber (.) intre pozitiile vecine ale seifului cu Pocalul (X) se face in foarte putini pasi? Si nu cumva si timpul de executie este proportional cu lungimea drumului? BA DA! Evirka! (la 0:30, cand te chinui sa-ti intre problema in 0.1s).

Ce e rau:
1. Graful obtinul la final are muchii ponderate si nu putem folosi parcurgerea in latime;
2. Trebuie sa calculam separat timpii de mutare a spatiului liber (.);
3. Trebuie sa calculam timpii de pornire din starile initiale.

Ce putem face sa scapam de ce e rau?

Putem pastra intacta multimea starilor [1;N]x[1;M]x[1;N]x[1;M] si putem sa o folosim pentru a calcula in ea timpii de mutare a spatiului liber si timpii de pornire din starile initiale! Si putem sa calculam drumul minim in graful ponderat printr-o parcurgere in latime! Cum?

Foarte simplu - ajustam solutia I, folosind doar ceea ce e bun din solutia II:

Parcurgand in latime multimea a starilor ([1;N]x[1;M]x[1;N]x[1;M]), tinem si o structura paralela a multimii starilor reduse ([1;N]x[1;M]x[1;4]), in care marcam starile prin care a trecut parcurgerea in latime. Daca pentru o pozitie a seifului cu Pocalul (X) au fost marcate toate cele 4 stari asociate din multimea starilor reduse, atunci parcurgerea in latime este oprita pentru toate starile cu acea pozitie a Pocalului.

In incheiere:
Eu sunt autorul solutiei propuse si a sursei trimisa spre evaluare si nu o consider o optimizare, ci un alt algoritm, cu un alt grad de complexitate (pe cazul mediu).

Probabil ca voi fi atacat, reprosandumi-se ca atata timp cat cu reduc cazul defavorabil, solutia mea nu este mai buna. Daca intentionati sa ma atacati, atunci va aduc aminte ca cel mai fecvent utilizat algoritm pe scara larga a fost pana nu demult QuickSort, care, in ciuda timpului dezastruos pe cazul defavorabil, a fost preferat HeapSortului, doar pentru ca are o constanta mai mica.

Si eu sunt adeptul timpilor lejeri, iar pozitia lui Mihai Calancea mi se pare cea mai buna:
In general se considera fair-play sa lasi limita mai libera pentru ca implementarile mai neingrijite (dar nu grosolan) sa nu-ti afecteze prea tare punctajul. Atata timp cat nu exista pericolul ca solutiile proaste sa ia mai mult.

Considerand ca am inventat o solutie mai buna (dpdv teoretic si nu cu artificii de limbaj), mi se pare ca timpul a fost marit suficient de mult cat sa permita si solutiilor in O(N*M*N*M) sa obtina 200p, ceea ce e incorect pentru solutia mea. Insa, afland ca de fapt a avut loc o greseala in randul comisiei, iar solutia oficiala era tot in O(N*M*N*M), marirea timpului de executie mi se pare decizia corecta!

Cu aceasta ocazie, tin sa multumesc organizatorilor pentru acest concurs, deoarece m-a facut sa-mi dau seama ca inca mai stiu algoritmi! Si le spun si eu sa aiba un pic mai multa grija pe viitor, pentru ca noi, concurentii, putem sa busim si nu ne mai calificam, insa organizatorii, cand gresesc, trebuie sa-i impace pe toti nemultumitii... si... e mai complicat :-ss.

Imi pare rau pentru cei care "s-au fript", facand surse partial gresite, dar care sa intre in timp (vanatorii de puncte Tongue).

In ceea ce ma priveste, inteleg ca nu suntem la lotul national sau la vreo olimpiada internationala organizata de o tara capabila sa propuna probleme imposibile, astfel ca se mai intampla sa descoperi un algoritm mai bun decat al comisiei, caz in care nu poti decat sa te bucuri! Smile Am impartit cu toata lumea solutia mea si sper sa va bucurati de ea, asa cum ma bucur si eu!

Sper ca v-a placut idea mea, pentru ca mie mi-a placut problema!
PS: Daca limita nu era de 0,1s, atunci nu m-as fi gandit la solutiile II si III.
Memorat

Atat am avut de spus
Pagini: 1 [2]   În sus
  Imprimă  
 
Schimbă forumul:  

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