Cod sursa(job #866552)

Utilizator PlatonPlaton Vlad Platon Data 28 ianuarie 2013 12:34:14
Problema Subsir crescator maximal Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <iostream>
#include <fstream>

using namespace std;

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

long v[100000],l[100000], i,n,k,maxl, maxf,mx;

int main()
{
	f>>n;
	for(i =1;i<=n;i++)
	{
		f>>v[i];
		if(maxl < v[i]) maxl=v[i];
	}
	
	l[v[n]]=1;
	for(i=n-1;i>=1;i--)
	{
		for(k=i+1;k<=n;k++)
		{
			l[v[i]]=l[v[i+1]];
			if(v[i]<v[k])
			{
				l[v[i]]=l[v[k]]+1;
				
				if(maxf<l[v[k]]+1)
				{
					maxf=l[v[k]]+1;
				}
				break;
			}
		}
	}
	g<<maxf<<"\n";
	mx=maxf;
	for(i=1;i<=maxl;i++)
	{
		if(mx==0) break;
		if(l[i]==mx)
		{
			g<<i<<" ";
			mx=mx-1;
		}
	}
	
	return 0;
}