Cerința
Se consideră un şir format din n
numere naturale nenule. Să se determine lungimea maximă a unei secvenţe strict crescătoare din şirul dat.
Date de intrare
Fișierul de intrare platou2.in
conține pe prima linie numărul n
, iar pe a doua linie n
numere naturale separate prin spații.
Date de ieșire
Fișierul de ieșire platou2.out
va conține pe prima linie numărul k
, reprezentând lungimea maximă a secvenței determinate.
Restricții și precizări
1 ≤ n ≤ 1000
- numerele de pe a doua linie a fișierului de intrare vor fi mai mici decât
100
- O secvenţă a unui şir constă în elemente aflate pe poziţii consecutive în şirul considerat.
Exemplu
platou2.in
10 7 22 13 10 31 41 6 7 10 8
platou2.out
3
Explicație
În fișierul de intrare, secvențele de lungime maximă (k=3
) sunt: 10 31 41
și 6 7 10
.
#include <bits/stdc++.h> using namespace std; ifstream fin("platou2.in"); ofstream fout("platou2.out"); int main() { int a[10001], i=1 , lmax = 0 , l = 0 , st = 0 , dr = 0; while(fin >> a[i]) i++; for(int j = 1 ; j <= i ; ++j) { if(a[j] < a[j+1]) { l++; if(l > lmax) {lmax = l ; dr = j ; st = dr - l +1;} } else l = 0; } fout<< lmax+1; return 0; }