Cod sursa(job #863121)

Utilizator Kira96Denis Mita Kira96 Data 23 ianuarie 2013 14:54:10
Problema Subsir crescator maximal Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include<fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int sir[100100],v[100100],i,k,x,poz,ma,n;
int cb(int s,int d)
{
	int mij;
	while(s<=d)
	{
		mij=(s+d)/2;
		if(x>sir[mij])
			s=mij+1;
		else
			d=mij-1;
	}
	mij=(s+d)/2;
	return mij+1;
}

int main ()
{
	f>>n;
	for(i=1;i<=n;++i)
	{
		f>>x;
		if(!poz)
			poz=1;
		else
		poz=cb(1,poz);
		sir[poz]=x;
		if(poz>ma)
		{
			ma=poz;
			for(k=1;k<=poz;++k)
				v[k]=sir[k];
		}
	}
	g<<ma<<"\n";
	for(i=1;i<=ma;++i)
		g<<v[i]<<" ";
	return 0;
}