Cod sursa(job #3265611)

Utilizator Victor5539Tanase Victor Victor5539 Data 1 ianuarie 2025 17:44:59
Problema Subsir crescator maximal Scor 45
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <iostream>
#include <fstream>

using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");

const int MAX=1e5;
int n,i,v[MAX+5],nr,g[MAX+5],h[MAX+5],st,dr,mij,sol;
int main()
{
    fin>>n;
    for (i=1; i<=n; i++)
        fin>>v[i];

    nr=1; g[1]=v[1]; h[1]=1;
    for (i=2; i<=n; i++)
    {
        if (v[i]>g[nr])
        {
            g[++nr]=v[i];
            h[i]=nr;
        }
        else
        {
            st=1; dr=nr; sol=0;
            while (st<=dr)
            {
                mij=(st+dr)>>1;
                if (g[mij]>v[i])
                    dr=mij-1;
                else
                st=mij+1;
            }

            g[dr+1]=v[i];
            h[i]=dr+1;
        }
    }

    fout<<nr<<"\n";

 return 0;
}