Pagini recente » Cod sursa (job #2891033) | Cod sursa (job #2086946) | Cod sursa (job #840191) | Cod sursa (job #2505468) | Cod sursa (job #221265)
Cod sursa(job #221265)
#include<stdio.h>
FILE*fin=fopen("scmax.in","r");
FILE*fout=fopen("scmax.out","w");
int s[100001],n,t[100001],sol[2][100001];
int main()
{
int i,f,max,j;
fscanf(fin,"%d",&n);
for(i=1;i<=n;i++)
fscanf(fin,"%d",&s[i]);
fclose(fin);
s[0]=0;
sol[0][0]=0;
for(i=1;i<=n;i++)
{
max=-1;
for(j=0;j<i;j++)
if(s[j]<s[i]&&sol[0][j]>max)
{
max=sol[0][j];
f=j;
}
sol[0][j]=max+1;
sol[1][j]=f;
}
max=0;
for(i=1;i<=n;i++)
if(sol[0][i]>max)
{
max=sol[0][i];
f=i;
}
for(i=1;i<=max;i++)
{
t[i]=f;
f=sol[1][f];
}
fprintf(fout,"%d\n",max);
for(i=max;i>=1;i--)
fprintf(fout,"%d ",s[t[i]]);
fclose(fout);
return 0;
}