Cod sursa(job #534659)

Utilizator mariusandreiMarius Lucian Andrei mariusandrei Data 15 februarie 2011 22:50:14
Problema Subsir 2 Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include<stdio.h>
#define N 5001
#define MAX_IM -1000000
using namespace std;

long v[N];
int best[N];
int sol[N];
int maxim=0;
int n;
void citire()
{
	freopen("subsir2.in","r",stdin);
	scanf("%d",&n);
	for (int i=1;i<=n;i++)
		scanf("%ld",&v[i]);
}

void vector()
{
	maxim=0;
	sol[1]=1;
	best[1]=1;
	for(int i=2;i<=n;i++)
	{
		int max=MAX_IM;
			for(int j=1;j<i;j++)
			{
				if(max<best[j]&&v[j]<v[i])
					max=best[j];
				if(v[j]>v[i])
					max=0;
			}
			best[i]=max+1;
			if(maxim<best[i])
				maxim=best[i];		
	}
}
void afisare()
{
	freopen("subsir2.out","w",stdout);
	printf("%d\n",maxim);
	for(int i=1;i<=maxim;i++)
		printf("%d ",sol[i]);
	
	printf("\n");
/*
	for(int i=1;i<=n;i++)
		printf("%d ",best[i]);
*/
	
}
int main()
{
	citire();
	vector();
	afisare();
	return 0;
}