Cod sursa(job #697261)

Utilizator flaviusc11Fl. C. flaviusc11 Data 28 februarie 2012 23:37:57
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include<cstdio>
#include<vector>
using namespace std;
vector<int>v,s;
int main()
{
	int i,k,n,max;
	FILE *in=fopen("scmax.in","r"),*out=fopen("scmax.out","w");
	fscanf(in,"%d",&n);
	s.resize(n);
	for(i=1;i<=n;++i)
		fscanf(in,"%d",&k),v.push_back(k);
	s[n-1]=1;
	for(i=n-2;i>=0;--i)
	{
		max=0;
		for(k=i+1;k<=n-1;++k)
			if(v[k]>v[i] && s[k]>max)
				max=s[k];
		s[i]=1+max;
	}
	max=0;
	for(i=0;i<n;++i)
		if(s[i]>=max)
			max=s[i],k=i;
	fprintf(out,"%d\n%d ",max,v[k]);
	for(i=k+1;i<n;++i)
		if(s[i]==max-1)
			fprintf(out,"%d ",v[i]),--max;
			
	return 0;
}