Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- subsir crescator de lungime maxima
- n=8
- V={5,12,456,21,7,910}
- S1=5,12,456,910
- numere de pe locuri in ordine ce formeaza un sir crescator
- lungimea maxima a sirului care se poate forma este 4
- rezolvare
- utilizam un vector in care memoram lungimile maxime ale subsirurilor care se pot forma incepand cu element de pe un anumit loc.
- L[i]=k => lungimea maxima a subsirului care se poate forma incepand cu V[1] este k
- observam ca
- L[n]=1 adica lungimea maxima a subsirului care se poate forma incepand cu ultimul element V[n] este 1 (subsirul este froma doar din acesta)
- completam L de la locatie n-1 pana la locatie de index 1.
- tinem cont de faptul ca lungimea maxima care se poate forma cu V[i] este 1 ( V[i] impunem sa faca parte din subsir ) + lungimea celui mai lung
- care se poate forma incepand cu un numar V[j] ulterior lui V[i] (adica urmator lui V[i] in sir) cu conditia ca acest V[j]>=V[i]
- in concluzie : completarea decurge astfel
- pentru i=n-1 pana la 1 executa
- L[i]=1
- maxim=0
- pentru j=i+1 pana la n executa
- daca L[j]>=maxim si V[j]>=V[i] atunci executa
- maxim=L[j]
- sfarsit
- sfarsit
- L[i]=L[i]+max
- sfarsit
- raspunsul la problema formulata este dat de valoarea maxima memorata in L dupa completarea acestuia
- solutie=0
- pentru i=1 pana la n executa
- daca L[i]>=solutie atunci
- solutie=[i]
- sfarsit
- afiseaza solutie
- */
- #include <iostream>
- using namespace std;
- int main()
- {
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement