Diferente pentru preoni-2007/runda-3/solutii intre reviziile #17 si #18

Nu exista diferente intre titluri.

Diferente intre continut:

h2. 'Buline':problema/buline
h3. (problema usoara, clasa a 9-a)
 
Problema este o variatie a unei probleme clasice: dandu-se un sir de $N$ numere intregi sa se determine o secventa de suma maxima. Singura modificare este ca in aceasta problema sirul este circular. In prima parte a solutiei nu vom lua in considerare faptul ca sirul este circular. Pentru a rezolva problema pentru un sir normal exista o solutie clasica $O(N)$. Se calculeaza pentru fiecare $i$ secventa de suma maxima care se termina cu elementul $i$: este fie secventa de suma maxima care se termina la elementul $i-1$, la care se adauga elementul $i$, fie doar elementul $i$. O scurta descriere in pseudocod a acestui algoritm:
== code(c) |
O prezentare detaila a acestei probleme si metode de rezolvare gasiti 'aici':http://www.ginfo.ro/revista/11_2/focus2.pdf.
Vom trata acum si faptul ca sirul este circular. Astfel, trebuie verificate si secventele de forma $i,i+1,...N-1,N,1,2,...j-1,j$. Pentru a realiza acest lucru eficient precalculam un sir de sume partiale $S{~i~} = A{~1~} + A{~2~} + ... + A{~i~} = S{~i-1~}+A{~i~}$ si un al doilea sir $T{~i~} = max(S{~1~}, S{~2~},..., S{~i~}) = max(T{~i-1~}, S{~i~})$. Pentru un $i$ fixat, cea mai buna secventa de forma $i,i+1,...N-1,N,1,2,...j-1,j$ se poate calcula in $O(1)$ astfel: $T{~i-1~}+S{~N~}-S{~i-1~}$. Complexitatea rezolvarii este $O(N)$, iar pentru reconstituirea solutiei sunt necesare  doar cateva variabile aditionale pentru pozitie si lungime.
h3. (problema usoara, clasa a 9-a)
 
h2. 'Zero 2':problema/zero2
h3. (problema medie, clasa a 9-a)

Nu exista diferente intre securitate.

Topicul de forum nu a fost schimbat.