Cod sursa(job #2006164)

Utilizator gruhtenZinnenberg Gruhten gruhten Data 28 iulie 2017 20:54:08
Problema Subsir crescator maximal Scor 65
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>
#define dim 100001
using namespace std;

int A[dim],Prec[dim],M[dim];

int main()
{
    ifstream f("scmax.in");
    ofstream g("scmax.out");

int i,j,N,st,dr,mij,k=0,poz;

f>>N;
for(i=1;i<=N;++i)
{
    f>>A[i];
    st=1;
    dr=k;
    while(st<=dr)
    {
        mij=(st+dr)/2;
        if(A[i]>M[mij])
            st=mij+1;
        else
            dr=mij-1;
    }
    M[st]=A[i];
    Prec[i]=st-1;

    if(st>k)
    {
        k=st;
        poz=i;
    }
}

g<<k<<'\n';
//fisam elementele
for(i=1;i<=k;++i)
    g<<M[i]<<' ';

//while(poz)
//{
//    g<<A[poz]<<' ';
//    poz=Prec[poz];
//}
g<<'\n';

    return 0;
}