Pagini recente » Cod sursa (job #2346166) | Cod sursa (job #1781720) | Cod sursa (job #2793927) | Cod sursa (job #637755) | Cod sursa (job #1982858)
#include <iostream>
#include<cstdio>
using namespace std;
int v[100005],d[100005],rez[100005];
int main()
{
FILE*fin,*fout;
fin=fopen("scmax.in","r");
fout=fopen("scmax.out","w");
int n,i,j,maxi,poz;
fscanf(fin,"%d",&n);
for(i=1;i<=n;i++){
fscanf(fin,"%d",&v[i]);
}
for(i=1;i<=n;i++){
maxi=1;
for(j=1;j<i;j++){
if(v[j]<v[i])
if(maxi<d[j]+1)
maxi=d[j]+1;
}
d[i]=maxi;
}
maxi=-1;
for(i=1;i<=n;i++){
if(d[i]>maxi){
poz=i;
maxi=d[i];
}
}
fprintf(fout,"%d\n",maxi);
int elemare=v[poz];
int cmaxi=maxi;
rez[maxi--]=elemare;
for(i=poz;i>0 && maxi>0;i--){
if(v[i]<elemare && d[i]==maxi){
elemare=v[i];
rez[maxi--]=v[i];
}
}
for(i=1;i<=cmaxi;i++)
fprintf(fout,"%d ",rez[i]);
return 0;
}