infoarena

infoarena - concursuri, probleme, evaluator, articole => Arhiva de probleme => Subiect creat de: Silviu-Ionut Ganceanu din Martie 18, 2007, 11:53:50



Titlul: 358 Oo
Scris de: Silviu-Ionut Ganceanu din Martie 18, 2007, 11:53:50
Aici puteţi discuta despre problema Oo (http://infoarena.ro/problema/oo).


Titlul: Răspuns: 358 Oo
Scris de: A Cosmina - vechi din Iulie 17, 2009, 00:12:33
Salut ! Stiu ca nu a postat nimeni aici si avand in vedere ca este o problema relativ usoara nici eu n-ar trebui sa o fac (sa postez ma refer).

Am testat sursa mea (http://infoarena.ro/job_detail/332207?action=view-source) cu mai multe varianta,da corect la toate.Insa aici primesc 0 puncte...


Daca mi-ar putea furnzia cineva un test care sa-mi deschida ochii sau alt ceva de genul ar fi grozav. Stiu ca ma pot uita pe sursele altora si sa fac intocmai ca ei,dar inainte de a adopta o noua idee vreau sa stiu ce nu-i in regula cu cea anterioara ...

P.S : Stiu ca pana acum n-ati prea avut rabdare cu mine,dar sper sa ne-ntelegem. Realizez ca in majoritatea situatiilor a fost vina mea.  :oops:


Titlul: Răspuns: 358 Oo
Scris de: Bozianu Ana din Iulie 17, 2009, 07:07:32
Pai tu ai mai multe greseli. Una ar fi ca nu iei deloc in calcul ca Ion ar putea sa culeaga primul si ultimul sector.

Citat
In plus, primul si ultimul sector sunt adiacente.

In sursa ta nu vad sa fi luat in calcul si acest caz.

Pentru testul :
Cod:
3
100 1 100

programul tau da rezultatul 101 . Corect ar fi 200.

O alta greseala: Tu consideri mereu secvente de cate 4 sectoare folosind acel do.
Daca urmaresti cu atentie ce faci acolo, vei observa ca nu iei niciodata in considerare ultimul din cele 4 sectoare.

Pentru testul :
Cod:
12
1 1 1 1000 1 1 1 1000 1 1 1 1000

programul tau da rezultatul 6 . Evident ca Ion poate sa culeaga mai putin de 3000 de oua.


Titlul: Răspuns: 358 Oo
Scris de: A Cosmina - vechi din Iulie 17, 2009, 09:57:08
Pricep,mersi. Ma ocup imediat. :)


Edit: Cred ca m-am prins... Ar trebui sa fac maximul dintre primul si ultimul element. Daca primul este > decat ultimul ( v[1]>v[n]) atunci pornesc cu i=1 si determin maximul dintre v[ i ] si v[ i+1 ]. Altfel, daca v[n]>v[1] o iau de la coada si verific ultimul cu penultimul si tot asa.


Asta era ideea?  :idea:


Titlul: Răspuns: 358 Oo
Scris de: Bozianu Ana din Iulie 17, 2009, 17:25:09
Ai grija si la situatii de genul
Cod:
12
1 100 100 1 1 100 100 1 1 1 100 100

Raspunsul corect pare a fi aici 600 ( sper sa nu gresesc) folosind cele trei perechi de 100.
Este posibil sa sari doua sau chiar 3 pozitii intre doua zone pe care se face "culegerea".


Titlul: Răspuns: 358 Oo
Scris de: A Cosmina - vechi din Iulie 17, 2009, 17:27:19
Problema asta se rezolva numai cu dinamica? :|


Titlul: Răspuns: 358 Oo
Scris de: Paul-Dan Baltescu din Iulie 17, 2009, 18:42:52
Problema asta e o aplicatie clasica a programarii dinamice. Nu cred ca se poate rezolva altfel.


Titlul: Răspuns: 358 Oo
Scris de: A Cosmina - vechi din Iulie 17, 2009, 19:02:19
Mersi.

Eu nu stiu programare dinamica, de asta nu prea-mi iese. Revin la ea cand o sa invat. ;)


Titlul: Răspuns: 358 Oo
Scris de: Juduc Paul Andrei din Martie 17, 2010, 12:26:57
http://infoarena.ro/job_detail/419208?action=view-source
pe toate testele care le-ati afisat aici imi da problema insa tot iau 0 pct  ](*,)
va rog ajutati-ma!