•filipb
|
|
« : Martie 26, 2007, 13:45:29 » |
|
Aici puteţi discuta despre problema 2sec.
|
|
|
Memorat
|
|
|
|
•vanila0406
De-al casei
Karma: -174
Deconectat
Mesaje: 107
Be wise,be smart,be like me!
|
|
« Răspunde #1 : Martie 27, 2007, 17:48:24 » |
|
la problema asta extrag secventa de suma minima si apoi secventa de suma maxima din jumatatea de dupa ea....am 60 pte....gresesc cu ceva? va rog spunetimi
|
|
|
Memorat
|
Only one thing I know:Death is the best way to a better life.
|
|
|
•gabitzish1
|
|
« Răspunde #2 : Aprilie 27, 2007, 16:17:44 » |
|
eu procedez cam la fel.. secventa de gasesc suma minima din sir, apoi pe cea cu suma maxima de dupa secventa cu suma minima.. si fac diferenta....primesc doar 70p si WA pe testele 4, 8, 10. Sugestii?? posibile greseli???
|
|
|
Memorat
|
|
|
|
•Florian
|
|
« Răspunde #3 : Aprilie 27, 2007, 16:23:42 » |
|
Nu am rezovat ink problema, insa cred k stiu unde gresesti! Cat iti da pt: 7 -10 -20 -30 200 300 -80 100
Cred k iti da 20...iar raspunsul corect este 440... Sper sa nu gresesc....[
|
|
« Ultima modificare: Aprilie 27, 2007, 16:25:24 de către Marcu Florian »
|
Memorat
|
|
|
|
•gabitzish1
|
|
« Răspunde #4 : Aprilie 27, 2007, 16:32:40 » |
|
imi da 580.. dar nu vad dc ti'ar da 440
|
|
|
Memorat
|
|
|
|
•cos_min
|
|
« Răspunde #5 : Aprilie 27, 2007, 16:38:45 » |
|
Pentru testul anterior raspunsul este 580.
@gabitzish1
Ai putea face ceva de genu secv de suma minima pana i si secv de suma maxima care se termina in i si verifici pentru fiecare i(luand maximul diferentei dintre cele 2 secvente mentionate anterior). Cel putin eu asa am facut si am luat 100.
|
|
« Ultima modificare: Aprilie 27, 2007, 16:41:22 de către Bondane Cosmin Cosi »
|
Memorat
|
vid...
|
|
|
•Florian
|
|
« Răspunde #6 : Aprilie 27, 2007, 16:43:06 » |
|
Da..facusem adunare in loc de scadere..greseala mea..dar s`ar putea sa fie din cauza k pozitia de sfarsit a sumei minime sa fie kiar pozitia n.. [Edit later] Am incercat si eu problema..iau doar 40 de puncte cu TLE pe ultimile 6 teste....
|
|
« Ultima modificare: Aprilie 27, 2007, 17:46:37 de către Marcu Florian »
|
Memorat
|
|
|
|
•gabitzish1
|
|
« Răspunde #7 : Aprilie 27, 2007, 17:20:01 » |
|
Ai putea face ceva de genu secv de suma minima pana i si secv de suma maxima care se termina in i si verifici pentru fiecare i(luand maximul diferentei dintre cele 2 secvente mentionate anterior). Cel putin eu asa am facut si am luat 100.
am incercat.. iau TLE p ultimele 6 teste...
|
|
|
Memorat
|
|
|
|
•Tabara
|
|
« Răspunde #8 : Aprilie 27, 2007, 17:20:34 » |
|
Ai putea face ceva de genu secv de suma minima pana i si secv de suma maxima care se termina in i si verifici pentru fiecare i(luand maximul diferentei dintre cele 2 secvente mentionate anterior). Cel putin eu asa am facut si am luat 100.
am incercat.. iau TLE p ultimele 6 teste... ai O(n) ?
|
|
|
Memorat
|
|
|
|
•gabitzish1
|
|
« Răspunde #9 : Aprilie 27, 2007, 17:23:54 » |
|
nu... nu m'am prins cum sa fac cu O(n) la sugestia lui cosmin.. ce am inteles eu e : pt un i=1 pana la n, sa gasesc secv d suma minima d la 1 la i si secv de suma maxima care se termina in i....
|
|
|
Memorat
|
|
|
|
•Tabara
|
|
« Răspunde #10 : Aprilie 27, 2007, 17:31:15 » |
|
nu... nu m'am prins cum sa fac cu O(n) la sugestia lui cosmin.. ce am inteles eu e : pt un i=1 pana la n, sa gasesc secv d suma minima d la 1 la i si secv de suma maxima care se termina in i....
Calculezi pentru fiecare element in parte, secventa de suma minima care se termina pe pozitia i si secventa de suma maxima care incepe pe pozitia i iar apoi doar cauti pozitia i in care diferenta intre ele este maxima.
|
|
|
Memorat
|
|
|
|
•Florian
|
|
« Răspunde #11 : Aprilie 27, 2007, 17:51:00 » |
|
Calculezi pentru fiecare element in parte, secventa de suma minima care se termina pe pozitia i si secventa de suma maxima care incepe pe pozitia i iar apoi doar cauti pozitia i in care diferenta intre ele este maxima. Am incercat asta si iau doar 40...cu TLE....esti sigur k intra in timp o rezolvare k asta? S`ar putea sa-mi scape ceva...dar totusi e TLE, nu WA
|
|
|
Memorat
|
|
|
|
•Tabara
|
|
« Răspunde #12 : Aprilie 27, 2007, 17:53:37 » |
|
Calculezi pentru fiecare element in parte, secventa de suma minima care se termina pe pozitia i si secventa de suma maxima care incepe pe pozitia i iar apoi doar cauti pozitia i in care diferenta intre ele este maxima. Am incercat asta si iau doar 40...cu TLE....esti sigur k intra in timp o rezolvare k asta? S`ar putea sa-mi scape ceva...dar totusi e TLE, nu WA Eu cred ca e imposibil sa se scoata mai putin de O(n).... Singurul lucru pe care ti l-as sugera e sa faci citirile in C. ( freopen )
|
|
|
Memorat
|
|
|
|
•cos_min
|
|
« Răspunde #13 : Aprilie 27, 2007, 17:53:55 » |
|
Pai iti precalculezi tu doua siruri A(i) - secv de suma minima care se termina in i B(i) - secv de suma maxima care incepe in i
Pentru asta ai O(n).
Dupa care mai faci o verificare in O(n), luand maxim(B(i)-A(i)) .
|
|
|
Memorat
|
vid...
|
|
|
•Florian
|
|
« Răspunde #14 : Aprilie 27, 2007, 18:09:02 » |
|
In felul asta am facut si eu..numai k nu am pastrat cele doua siruri (A si B)...faceam la fiecare pas compararea cu diferenta maxima pana in acel moment...cat despre citire, citesc cu fscanf, deschizand cu f=fopen(...); cred k o sa reiau implementarea de la inceput...akum iau 50 de puncte...e un salt totusi Multumesc mult de ajutor
|
|
|
Memorat
|
|
|
|
•Florian
|
|
« Răspunde #15 : Aprilie 27, 2007, 22:12:33 » |
|
|
|
|
Memorat
|
|
|
|
•devilkind
|
|
« Răspunde #16 : Aprilie 27, 2007, 22:30:46 » |
|
faci intai o parcurgere in calculezi A - suma minima ptr primele i si apoi ink o parcurgere ptr B - suma maxima ptr ultimele i elemente.
|
|
|
Memorat
|
|
|
|
•Florian
|
|
« Răspunde #17 : Aprilie 28, 2007, 08:44:53 » |
|
Intr`adevar! Am reusit sa fak o implementare buna! dar iau KBS 11! Mi se pare normal, intrucat am trei vectori de 1 milion! Am trimis o sursa cu vectorii declarati de 500000 si iau 70 de puncte! Multumesc tuturor de ajutor! Am avut ce invata din problema asta!
|
|
|
Memorat
|
|
|
|
•Dastas
|
|
« Răspunde #18 : Aprilie 28, 2007, 10:00:18 » |
|
Este memorie, mie mi-a intrat lejer cu 3 vectori de 1 milion. De la altceva trebuie sa fie...
|
|
|
Memorat
|
|
|
|
•Florian
|
|
« Răspunde #19 : Aprilie 28, 2007, 10:10:41 » |
|
Nu prea are ce altceva sa fie...gandeste`te k trimit aceeasi sursa , insa cu vectori de 500.000 si iau 70! Iar cand o trimit cu vectori de 1 milion iau KBS...amazing...
|
|
|
Memorat
|
|
|
|
•Dastas
|
|
« Răspunde #20 : Aprilie 28, 2007, 10:15:00 » |
|
Ai incercat sa-i declari dinamic, cu new? de exemplu, in loc de int a[NMAX], sa ai int *a = new int[NMAX];
Desi mie imi merge daca nu-i declar dinamic... esti sigur ca nu faci nimic altceva?
|
|
|
Memorat
|
|
|
|
•Florian
|
|
« Răspunde #21 : Aprilie 28, 2007, 10:22:53 » |
|
In sfarsit!!! A intrat cu alocarea dinamica! Multumesc mult de ajutor! [ps: Nu stiam faza cu alocarea dinamica. Si mai mijto e faptul k, eu desi in lucrez in borland, nu`mi mai da eroarea "Array size too large" dak aloc dinamic...]
|
|
|
Memorat
|
|
|
|
•Dastas
|
|
« Răspunde #22 : Aprilie 28, 2007, 10:29:03 » |
|
Inca o sugestie: foloseste compilatorul GCC. Cu asta se evalueaza si pe site, si nu degeaba, este mult superior borland-ului. Pentru IDE ai mai multe variante: rhide (interfata asemanatoare cu cea din borland), DevCPP, Code::Blocks...
|
|
|
Memorat
|
|
|
|
•Pepelea_Flaviu
Client obisnuit
Karma: 30
Deconectat
Mesaje: 98
|
|
« Răspunde #23 : Aprilie 28, 2007, 16:26:36 » |
|
Buna!! Am si eu o intrebare pentru ce-i care stiu free pascal. Ce inseamna "Program exited with exitcode = 0", "Error within GDB Error Code = 0" ] ? Am facut si eu problema excursie de la nationala si am luat 95 de puncte. La al doilea test imi dai non-zero exit status. Ma poate ajuta cineva?
|
|
|
Memorat
|
|
|
|
•CezarMocan
|
|
« Răspunde #24 : Aprilie 29, 2007, 12:52:41 » |
|
Pentru prima intrebare. Cred ca ti s-a stricat debuggeru. Si eu am patit aia acum cateva zile si am reinstalat pascalu. Nu stiu daca e solutia cea mai buna...
|
|
|
Memorat
|
|
|
|
|