Cod sursa(job #873663)

Utilizator eucosminulFilip Cosmin Ionut eucosminul Data 7 februarie 2013 15:32:02
Problema Subsir crescator maximal Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int l[100002], i, j, v[100002], a[100002],k,maxim,p,n;
int poz(int p, int u,int a)
{
    int mij=p+(u-p)/2;
    if(p<=u)
    {
        if(a==v[mij])
        return mij;
        if(a<v[mij])
        return poz(p, mij-1,a);
        if(a>v[mij])
        return poz(mij+1,u,a);
    }
    else
    return p;
}

int main()
{
    f>>n;
    for(i=1;i<=n;i++)
    f>>a[i];
    for(i=1;i<=n;i++)
    {
        p=poz(1,k,a[i]);
        v[p]=a[i];
        if (p>k)
        k=p;
        l[i]=p;
        if(k>maxim)
        maxim=p;
    }
    g<<maxim;
    return 0;

}