Cod sursa(job #756460)

Utilizator ephgstefana gal ephg Data 9 iunie 2012 17:41:50
Problema Subsir 2 Scor 45
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <cstdio>
int sir[5005],v[5005],sol[5005],dim;
int main () {
	int n,i,j,minl,p,c;
	freopen("subsir2.in","r",stdin);
	freopen("subsir2.out","w",stdout);
	scanf("%d",&n);
	for(i=1;i<=n;++i)scanf("%d",&sir[i]);
	for(i=1;i<=n;++i){
		for(j=0;j<i;++j){
			if(sir[i]>sir[j]&&v[i]<=v[j]){
				v[i]=v[j]+1;
				if(v[i]>v[i-1]+1)v[i]=v[i-1]+1;
			}
		}
	}
	printf("%d\n",v[n]);
	c=v[n];
/*	for(j=1;j<=v[n];++j){
		minl=99999999;
		for(i=1;i<=n;++i)if(v[i]==j&&minl>sir[i]){
			minl=sir[i];
			p=i;
		}
		printf("%d ",p);
	}*/
	for(i=n;i&&c;--i){
		if(v[i]==c){
			sol[++dim]=i;
			--c;
		}
	}
	for(i=dim;i;--i)printf("%d ",sol[i]);
	return 0;
}