Pagini recente » Cod sursa (job #1951059) | Cod sursa (job #2879782) | Cod sursa (job #742088) | Cod sursa (job #2155617) | Cod sursa (job #797982)
Cod sursa(job #797982)
#include <stdio.h>
#include<string.h>
FILE*fin,*fout;
int n,i,j,l[100001],ultim[100001],lmax,v[100001],x,max, ind, indm,sol[100001];
int main()
{
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]);
max=0; indm=0;
for(j=1;j<=i;j++){
if(v[j]<v[i]){
if(l[j]>max){max=l[j];indm=j;}
}
}
l[i]=1+max;
if(l[i]>lmax){lmax=l[i];ind=i;ultim[i]=indm;}
}
fprintf(fout,"%d\n ",lmax);
j=1;
while(ultim[ind]!=0){
sol[j]=v[ultim[ind]];
ind=ultim[ind];
j++;
}
sol[j]=v[ind];
for(i=1;i<=j;i++){
fprintf(fout,"%d ",sol[i]);
}
fclose(fin);
fclose(fout);
return 0;
}