Pagini recente » Cod sursa (job #1475534) | Cod sursa (job #1157245) | Cod sursa (job #2484910) | Cod sursa (job #3149897) | Cod sursa (job #863547)
Cod sursa(job #863547)
#include <iostream>
#include <stdio.h>
using namespace std;
FILE *f=fopen("scmax.in","r");
FILE *g=fopen("scmax.out","w");
int b[100005],p[100005],a[100005],v[100005],mx,mx1,i,j,ok,n,k;
int main()
{
fscanf(f,"%d",&n);
for (i=1;i<=n;i++)
fscanf(f,"%d",&v[i]);
a[n]=1;
for (i=n-1;i>=1;i--){
ok=0;
mx1=0;
a[i]=1;
for (j=i+1;j<=n;j++)
if (v[j]>v[i] && a[j]+1>a[i])
{
a[i]=a[j]+1;
ok=j;
}
p[a[ok]-1]=v[ok];
if (a[i]>mx) { mx=a[i];k=i;for (j=1;j<=mx-1;j++) b[j]=p[j];}
}
fprintf(g,"%d\n",mx);
fprintf(g,"%d ",v[k]);
for (i=mx-1;i>=1;i--)
fprintf(g,"%d ",b[i]);
fclose(g);
return 0;
}