Cod sursa(job #863169)

Utilizator Kira96Denis Mita Kira96 Data 23 ianuarie 2013 15:45:35
Problema Subsir crescator maximal Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <fstream>
#define MAXX 100010
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int v[MAXX],s[MAXX],n,i,j,k,p,a,ma,nr,kk;
int cb(int x){
    int m,i,j;
    i=1;
    j=k;
    while(i<=j){
        m=(i+j)/2;
        if(s[m-1]<x&&s[m]>=x)
            return m;
        else if(s[m]>=x)
                j=m-1;
        else i=m+1;
    }  
    return 0;
     
}
 
int main(){
    f>>n;
    for(p=1;p<=n;p++)
	{
		f>>nr;
        a=cb(nr);
        if(!a)
            s[++k]=nr;
        else 
		{
            s[a]=nr;
			k=a;
        }
		if(k>ma)
		{
			ma=k;
			for(kk=1;kk<=ma;++kk)
				v[kk]=s[kk];
		}
    }
	g<<ma<<"\n";
	for(i=1;i<=ma;++i)
		g<<v[i]<<" ";
    return 0;
}