Răspuns :
Aici ai ceva de munca.
Iti citesti n si sirul de numere.
Vom folosi o bucla infinita, un while true, din care vom iesi cu o alta instructiune cand e nevoie.
La inceputul fiecarui while vom folosi o variabila sa verificam daca mai exista copaci mai mari ca 0, daca NU mai exista atunci am temrinat, si deci setam variabila la valoarea corespunzatoare si apoi folosind un if ca sa verificam daca variabila a mai gasit sau nu copaci, iesim sau nu din while.
Bun, ne-am asigurat ca programul verifica daca si-a terminat sau nu treaba, acum sa il punem sa fi FACA treaba aia :))
Numim o secventa(sequence, sau seq), o serie de copaci MAI MARI CA 0, care sunt unul dupa altul.
Spre ex: 151 0 174 0 8 are 3 secvente pentru ca sunt 3 "padurici" de copaci cu cate unul sau mai multi copaci taiati(0) intre ele.
Vom incepe sa cautam prima secventa folosind doua variabile, pentru indicele la care incepe secventa si cate elemente are in total. Asta vom face cu un for si cateva if-uri.
Apoi avand seq_start si seq_len, cu un for vom parcurge DOAR acea secventa de copaci si il vom gasi pe cel cu inaltime minima, deci nr minim din secventa aia.
Apoi parcurgem iar cu un for DOAR secventa aia, si scurtam fiecare copac exact cu inaltimea acelui copac minim. Deci copacul minim va deveni 0.
Am facut un program ceva mai lung si mai detaliata ca sa intelegi ce si cum. Iti va afisa si la fiecare taiere ce secventa taie (adica incepand de la ce pozitie si cati copaci lungime are secventa) si cu CAT taie, cat si sirul de copaci:
Iti citesti n si sirul de numere.
Vom folosi o bucla infinita, un while true, din care vom iesi cu o alta instructiune cand e nevoie.
La inceputul fiecarui while vom folosi o variabila sa verificam daca mai exista copaci mai mari ca 0, daca NU mai exista atunci am temrinat, si deci setam variabila la valoarea corespunzatoare si apoi folosind un if ca sa verificam daca variabila a mai gasit sau nu copaci, iesim sau nu din while.
Bun, ne-am asigurat ca programul verifica daca si-a terminat sau nu treaba, acum sa il punem sa fi FACA treaba aia :))
Numim o secventa(sequence, sau seq), o serie de copaci MAI MARI CA 0, care sunt unul dupa altul.
Spre ex: 151 0 174 0 8 are 3 secvente pentru ca sunt 3 "padurici" de copaci cu cate unul sau mai multi copaci taiati(0) intre ele.
Vom incepe sa cautam prima secventa folosind doua variabile, pentru indicele la care incepe secventa si cate elemente are in total. Asta vom face cu un for si cateva if-uri.
Apoi avand seq_start si seq_len, cu un for vom parcurge DOAR acea secventa de copaci si il vom gasi pe cel cu inaltime minima, deci nr minim din secventa aia.
Apoi parcurgem iar cu un for DOAR secventa aia, si scurtam fiecare copac exact cu inaltimea acelui copac minim. Deci copacul minim va deveni 0.
Am facut un program ceva mai lung si mai detaliata ca sa intelegi ce si cum. Iti va afisa si la fiecare taiere ce secventa taie (adica incepand de la ce pozitie si cati copaci lungime are secventa) si cu CAT taie, cat si sirul de copaci:
Vă mulțumim pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile disponibile v-au fost utile și inspiraționale. Dacă aveți întrebări sau aveți nevoie de suport suplimentar, suntem aici pentru a vă ajuta. Ne face plăcere să vă revedem și vă invităm să adăugați site-ul nostru la favorite pentru acces rapid!