Cod sursa(job #663797)

Utilizator alexalghisiAlghisi Alessandro Paolo alexalghisi Data 18 ianuarie 2012 22:41:45
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <vector>
using namespace std;

int v[200],dp[200];
vector<int> v2;
int main()
{
	int n,maximgeneral=0;
	freopen("scmax.in","r",stdin);
	freopen("scmax.out","w", stdout);
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
	{
		scanf("%d",&v[i]);
		int maxim=0;
		for(int j=0;j<i;j++)
		{
			if(v[j]<v[i]) maxim=max(maxim,dp[j]);
		}
		dp[i]=1+maxim;
		maximgeneral=max(maximgeneral,dp[i]);
	}
	printf("%d\n",maximgeneral);
	for(int i=n;i>=1;i--)
	{
		if(dp[i]==maximgeneral)
		{
			v2.push_back(i);
			maximgeneral--;
			
		}
		
	}	
	for(int i=v2.size()-1;i>=0;i--) printf("%d ",v[v2[i]]);
	return 0;
}