Cod sursa(job #415916)

Utilizator ClasianMunteanu Petre Clasian Data 11 martie 2010 22:35:54
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.48 kb
#include<stdio.h>
int n,max,pmax,mx,v[100000],d[100000],pd[100000],i,j;
int main()
{ freopen("scmax.in","r",stdin);
	freopen("scmax.out","w",stdout);
	scanf("%d",&n);
	for(i=1;i<=n;i++)
		scanf("%d",&v[i]);
  pd[n]=1;
  for(i=n-1;i;i--)  { mx=0;
					  for(j=i+1;j<=n;j++)if(v[i]<v[j]&&pd[j]>mx)mx=pd[j],d[i]=j;
					  pd[i]=1+mx;
					  if(max<pd[i])max=pd[i],pmax=i;
					}
  printf("%d\n",max);
  while(pmax) { printf("%d ",v[pmax]);
				pmax=d[pmax];
			  }  
  return 0;
}