Pagini recente » Cod sursa (job #3292132) | Cod sursa (job #1407248) | Cod sursa (job #3234293) | Cod sursa (job #250998) | Cod sursa (job #2614240)
#include <stdio.h>
#include <stdlib.h>
FILE *fin , *fout;
int v[100000];
int d[100000];
int main() {
fin=fopen("scmax.in","r");
fout=fopen("scmax.out","w");
int n,i,lung=0,max,j;
fscanf(fin,"%d",&n);
for(i=0;i<n;i++) {
fscanf(fin,"%d",&v[i]);
}
d[n-1]=1;
for(i=n-2;i>=0;i--) {
max=0;
for(j=i+1;j<n;j++) {
if(v[i]<v[j] && d[j]>max) {
max=d[j];
}
}
d[i]=max+1;
if(d[i]>lung) {
lung=d[i];
}
}
fprintf(fout,"%d\n",lung);
i=0;
while(lung>0) {
if(d[i]==lung) {
fprintf(fout,"%d ",v[i]);
lung--;
}
i++;
}
fclose(fin);
fclose(fout);
return 0;
}