Cod sursa(job #2215339)

Utilizator AndreiDeltaBalanici Andrei Daniel AndreiDelta Data 21 iunie 2018 18:14:53
Problema Subsir crescator maximal Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <iostream>
#include <fstream>
#include <deque>
#define Dim 100000
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int T, N, K, P[50010], V[100010], last[100010];
bool fr[620000];

int main()
{
    f>> N ;
    for (int i = 1; i <= N; i++) f >> V[i];
        int L = 1;
        last[1] = 1;
        for (int i = 2; i <= N; i++)
        {
            int st = 1, dr = L, mij;
            while (st <= dr)
            {
                mij = (st + dr) / 2;
                if (V[i] > V[last[mij]]) st = mij + 1;
                else dr = mij - 1;
            }

            if (st == L + 1) L += 1;
            last[st] = i;
        }

        g << L << '\n';
    return 0;
}