fbpx

Problema #1879 – platou2 – Rezolvari PBInfo

de Mihai-Alexandru

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;
}
Comentarii

S-ar putea sa iti placa