Cod sursa(job #484346)

Utilizator petroMilut Petronela petro Data 13 septembrie 2010 19:25:31
Problema Subsir crescator maximal Scor 65
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include<fstream>
#define M 100005
using namespace std;

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

int main()
{
	int v[M],l[M];
	int n,k,i,j,m,p,pp;
	f>>n;
	p=0;
	
	for(k=1;k<=n;++k)
	{
		f>>v[k];
		i=1;
		j=p;
		pp=0;
		
		while(i<=j)
		{
			m=(i+j)/2;
			if(l[m]>v[k]) {pp=m;
						   j=m-1;}
			else if(l[m]<v[k]) i=m+1;
			     else {pp=m;
					   break;}
		}
		
		if(pp==0) {++p;
				   pp=p;}
		l[pp]=v[k];
	}
	
	g<<p<<"\n";
	for(i=1;i<=p;++i)
		g<<l[i]<<" ";
	g<<"\n";
	
	f.close();
	g.close();
	return 0;
}