Cod sursa(job #622333)

Utilizator Tucu94Andrei Tuculanu Tucu94 Data 17 octombrie 2011 20:29:14
Problema Subsir crescator maximal Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include<fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int V[100003],X[100003],T[100003];
int N,u,p,mid,i,s;
void afisare(int poz)
{
	if(poz){
		afisare(T[poz]);
		g<<V[poz]<<" ";
	}

}
int main ()
{
	
	f>>N;
	for( i=1 ; i<=N ; i++ )
		f>>V[i];
	
	X[1]=1; s=1;
	for( i=2 ; i<=N ; i++ )
	{
		p=1;u=s;
		while (p <= u) 
		{
			mid = (u - p) / 2 + p;
			if (V[i] > V[X[mid]]) 
				p = mid + 1;
			else
				u = mid - 1;
		}
			if (p > s)
				s++;
			X[p] = i; 
			T[i] = X[p-1];
	}
	g<<s<<"\n";
	afisare(X[s]);








return 0;
}