Pagini recente » Cod sursa (job #1699632) | Cod sursa (job #2723947) | Cod sursa (job #1652464) | Cod sursa (job #858524) | Cod sursa (job #1982847)
#include <iostream>
#include <stdio.h>
using namespace std;
int v[100000], vv[100000], v3[100000];
int main() {
FILE *fin, *fout;
int n, i, j, ma, am;
fin=fopen("scmax.in","r");
fout=fopen("scmax.out","w");
fscanf(fin, "%d",&n);
for(i=1;i<=n;i++)
fscanf(fin, "%d",&v[i]);
vv[1]=1;
for(i=2;i<=n;i++) {
ma=0;
for(j=i-1;j>=1;j--)
if(vv[j]>ma && v[i]>v[j])
ma=vv[j];
vv[i]=ma+1;
}
ma=0;
for(i=1;i<=n;i++)
if(vv[i]>ma) {
ma=vv[i];
am=i;
}
fprintf(fout, "%d\n",ma);
i=1;
v3[i]=v[am];
am--;
ma--;
i++;
for(;am>=1;am--)
if(vv[am]==ma) {
v3[i]=v[am];
i++;
ma--;
}
for(j=i-1;j>=1;j--)
fprintf(fout, "%d ",v3[j]);
fclose( fin );
fclose( fout );
return 0;
}