Pagini recente » Cod sursa (job #3159140) | Cod sursa (job #2101560) | Cod sursa (job #246028) | Cod sursa (job #731220) | Cod sursa (job #860233)
Cod sursa(job #860233)
#include<stdio.h>
FILE *in,*out;
int n,v[100001],l[100001],max;
int main(void)
{
in=fopen("scmax.in","rt");
out=fopen("scmax.out","wt");
fscanf(in,"%d",&n);
for(int i=1;i<=n;++i)
fscanf(in,"%d",&v[i]);
l[n]=1;
for(int i=n-1;i>=1;--i)
{
max=0;
for(int j=i+1;j<=n;++j)
if(v[i]<v[j] &&l[j]>max)
max=l[j];
l[i]=max+1;
}
max=l[1];int t=1;
for(int i=1;i<=n;++i)
if(l[i]>max)
{
max=l[i];
t=i;
}
fprintf(out,"%d\n",max);
fprintf(out,"%d ",v[t]);
for(int i=t+1;i<=n;++i)
if(v[i]>v[t] && l[i]==max-1)
{
fprintf(out,"%d ",v[i]);
max--;
}
fclose(in);
fclose(out);
return 0;
}