Cod sursa(job #1649258)

Utilizator raduzxstefanescu radu raduzx Data 11 martie 2016 13:01:17
Problema Subsir crescator maximal Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <fstream>

using namespace std;
int x[100005],y[100005];
int cautbin(int a,int n)
{
    int i=1,j=n,m;
    while(i+1<j)
    {
        m=(i+j)/2;
        if(a>x[m])
            i=m+1;
        else
            j=m-1;
    }
    if(x[i]<a)
        return i;
    else
        return -1;
}
int main()
{
    ifstream f("scmax.in");
    ofstream g("scmax.out");
    int n,lung=1,poz,a,i;
    f>>n;
    f>>a;
    x[1]=a;
    y[1]=1;
    for(i=1;i<=n;i++)
    {
        f>>a;
        poz=cautbin(a,lung);
        if(poz==-1)
        {
            lung+=1;
            y[lung]=1;
        }
        else
        {
            x[poz]=a;
            y[poz]+=1;
        }
    }
    int m=-1;
    for(i=1;i<=lung;i++)
        if(m<y[i])
            m=y[i];
    g<<m;
    return 0;
}