Cod sursa(job #185895)

Utilizator vanila_CPPIonescu Victor Cristian vanila_CPP Data 26 aprilie 2008 12:45:57
Problema Subsir crescator maximal Scor 65
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include <iostream>
#define FIN "scmax.in"
#define FOUT "scmax.out"
#define MAX_N 100010
using namespace std;
int target,v[MAX_N],n;


void cbin(int p,int u,int vl){
        if (p<=u){
                int m=(p+u)/2;
                if (v[m]>=vl){
                    target=m;
                    cbin(p,m-1,vl);
                } else cbin(m+1,u,vl);
        }
        return ;
}



int main(void){

        freopen(FIN,"rt",stdin);
        freopen(FOUT,"wt",stdout);

        cin>>n;

        int len=0,x;

        for (int i=1;i<=n;++i){
                cin>>x;
                target=len+1;
                cbin(1,len,x);
                v[target]=x;
                if (target>len)++len;
        }

        cout<<len<<"\n";
        for (int i=1;i<len;++i)printf("%d ",v[i]);
        printf("%d\n",v[len]);

        fclose(stdin);
        fclose(stdout);

        return 0;
}