Cerința
La o centrală solară se monitorizează stocul zilnic de energie produsă și stocul total calculat pentru fiecare perioadă. Zilele de monitorizare sunt numerotate cu valori naturale consecutive, în ordine cronologică, începând cu ziua 1. O perioadă este formată din cel puțin două zile de monitorizare, consecutive, iar stocul total calculat pentru ea este suma stocurilor zilnice corespunzătoare. O zi este validată dacă stocul zilnic este cel puțin egal cu limita zilnică, minZ; o perioadă este validată dacă stocul total calculat pentru ea este cel puțin egal cu limita stabilită pentru perioade, minP, fiecare zi a perioadei este validată, iar perioada este maximală în raport cu această proprietate (nu i se mai poate adăuga nicio zi validată).
Fișierul text bac.in conține cel mult 106 numere naturale din intervalul [1,103]: pe prima linie minZ și minP, reprezentând limitele precizate pentru validare, iar pe a doua linie stocurile zilnice de energie produse în zile consecutive, în ordinea monitorizării. Numerele aflate pe aceeași linie a fișierului sunt separate prin
câte un spațiu.
Se cere să se afișeze în fișierul bac.out, pentru fiecare perioadă de producție validată, corespunzătoare datelor din fișier, câte un triplet de numere, reprezentând prima și ultima zi a perioadei, respectiv stocul total calculat pentru ea. Valorile din fiecare triplet se afișează pe câte o linie a ecranului, separate prin câte un spațiu, iar dacă nu există nicio astfel de perioadă, se afișează mesajul nu exista. Proiectați un algoritm eficient din punctul de vedere al memoriei utilizate și al timpului de executare.
Restricții și precizări
- Pentru determinarea numerelor cerute se utilizează un algoritm eficient din punctul de vedere al memoriei necesare și al timpului de executare.
- Se recomandă evitarea memorării elementelor șirului într-un tablou sau în altă structură de date similară.
Exemplu:
bac.in
10 40 65 9 20 25 12 14 7 3 11 15 12 8 19 50 21
bac.out
3 6 71 13 15 90