Cod sursa(job #2157086)

Utilizator gruhtenZinnenberg Gruhten gruhten Data 9 martie 2018 11:06:00
Problema Subsir crescator maximal Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <fstream>
#define dim 100004
//#define dim 8
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;
//7
//2 -5 4 6 -4 -3 -2
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;
}