Cod sursa(job #2195005)

Utilizator stefantagaTaga Stefan stefantaga Data 14 aprilie 2018 21:21:40
Problema Subsir crescator maximal Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <fstream>

using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int n,v[100001],l[100001],b[100001],mij,lmax;
int cautbin (int x)
{
    int p,u;
    p=1;
    u=n;
    while (p<=u)
    {
        mij=(p+u)/2;
        if (b[mij]<x)
        {
            p=mij+1;
        }
        else
        {
            u=mij-1;
        }
    }
    return u;
}
void solve()
{
    int i,poz;
    for (i=1;i<=n;i++)
    {
        poz=cautbin(v[i]);
        if (v[i]<b[poz+1])
        {
            b[poz+1]=v[i];
            l[i]=poz+1;
        }
        if (l[i]>lmax)
        {
            lmax=l[i];
        }
    }
}
int main()
{
int i;
    f>>n;
    for (i=1;i<=n;i++)
    {
        f>>v[i];
        b[i]=2000000001;
    }
    solve();
    g<<lmax;
    return 0;
}