Cod sursa(job #2008467)

Utilizator gruhtenZinnenberg Gruhten gruhten Data 6 august 2017 16:45:11
Problema Subsir crescator maximal Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>
#define dim 100001
using namespace std;

ifstream f("scmax.in");
ofstream g("scmax.out");
int Prec[dim],x,M[dim],A[dim];
int st=1,dr,k=0,mij,poz;

void Afis(int b)
{
    if(b!=0)
    {
      Afis(Prec[b]);
      g<<A[b]<<" ";
    }


}

int main()
{

int i,j,N;

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]>A[M[mij]])
           st=mij+1;
        else
           dr=mij-1;
    }
    M[st]=i;
    Prec[i]=M[st-1];
    if(st>k)
    {
        k=st;
        poz=i;
    }
    /*********************/
}

g<<k<<'\n';
Afis(poz);
g<<'\n';

    return 0;
}