Cod sursa(job #863148)

Utilizator Kira96Denis Mita Kira96 Data 23 ianuarie 2013 15:23:15
Problema Subsir crescator maximal Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 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=(s+d)/2;
	while(s<=d)
	{
		
		if(x<=v[mij]&&x>v[mij-1])
			return mij;
		if(x>v[mij])
		{
			s=mij+1;
			mij=(s+d)/2;
		}
		else
		{
			d=mij-1; mij=(s+d)/2;
		}
	}
	return s;
}

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<=ma;++k)
				v[k]=sir[k];
		}
	}
	g<<ma<<"\n";
	for(i=1;i<=ma;++i)
		g<<v[i]<<" ";
	return 0;
}