Pagini recente » Cod sursa (job #3246190) | Cod sursa (job #590074) | Cod sursa (job #1761967) | Cod sursa (job #2783590) | Cod sursa (job #694084)
Cod sursa(job #694084)
#include<stdio.h>
using namespace std;
int main ()
{
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
int n,a[100002],best[100002],p[100002],i,j,max,e=0,k;
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
best[n]=1; p[n]=-1;
for(i=n-1;i>0;i--){
max=0;
for(j=i+1;j<=n;j++)
if(a[i]<a[j]&&best[max]<best[j])
max=j;
if(max!=0){
best[i]=best[max]+1;
p[i]=max;}
else{
best[i]=1;
p[i]=-1;}
if(e<best[i]){
k=i;
e=best[i];}}
printf("%d\n",e);
while(p[k]!=-1){
printf("%d ",a[k]);
k=p[k];}
printf("%d ",a[k]);
return 0;
}