Cod sursa(job #2988389)

Utilizator juniorOvidiu Rosca junior Data 4 martie 2023 11:01:43
Problema Subsir crescator maximal Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.64 kb
#include <fstream>

using namespace std;

const int infinit = 2e9 + 1;
const int MAX = 100001;

ifstream fin("scmax.in");
ofstream fout("scmax.out");
int n, i, nr, s, d, m, vm[MAX], p, a[MAX], lmax;
// vm[i] = valoarea minima cu care se termina un subsir strict crescator de lungime i

int main() {
    fin >> n;
    for (i = 1; i <= n; i++)
        fin >> a[i];
    for (i = 1; i <= n; i++)
        vm[i] = infinit;
    for (i = 1; i <= n; i++) {
        d = i + 1;
        while (vm[d] > a[i]) 
            d--;
        vm[d] = a[i];
    }
    lmax = n;
    while (vm[lmax] == infinit)
        lmax--;
    fout << lmax;
}