Documente Academic
Documente Profesional
Documente Cultură
Informatică
Concurs de antrenament
5 februarie 2022
InvSub
Se dă A un șir cu N elemente: a1, a2, …, aN, unde ai reprezintă valoarea elementului de
la poziția i.
Numim subșir al lui A un șir de forma ai1, ai2, …, aik cu proprietatea că:
1 <= i1 < i2 < … < ik <= N și 1 <= k <= N.
Mai spunem că un astfel de subșir este crescător dacă ai1 <= ai2 <= … <= aik.
Dorim ca A să conțină un subșir crescător de lungime cât mai mare. Pentru a îndeplini acest
obiectiv, putem aplica o singură dată următoarea operație: alegem un subșir al șirului A și
inversăm ordinea elementelor sale.
Observați cum subșirul ales pentru această operație va fi așezat pe aceleași poziții și după
inversare, lăsând toate celelalte valori intacte.
Date de intrare
Fișierul invsub.in conține pe prima linie valoarea N (dimensiunea șirului A).
Pe următoarele N linii se regăsesc valorile șirului A: de pe linia i+1 se va citi valoarea ai.
Date de iesire
În fișierul invsub.out afișați lungimea maximă posibilă a unui subșir crescător conținut în
A, după ce se aplică operația de inversare cel mult o dată.
Restrictii
● 1 <= N <= 50
● 1 <= ai <= 50
Centrul de Pregătire pentru Performanță în
Informatică
Concurs de antrenament
5 februarie 2022
Exemplu
invsub.in invsub.out
9 9
3
4
5
11
7
8
10
9
6