Pagini recente » Cod sursa (job #1974437) | Cod sursa (job #1211341) | Cod sursa (job #3237001) | Cod sursa (job #2473468) | Cod sursa (job #882304)
Cod sursa(job #882304)
#include<iostream>
#include<stdio.h>
long n;
long a[100001],l[100001];
FILE *f=fopen("scmax.in","r"),*g=fopen("scmax.out","w");
int main()
{
fscanf(f,"%ld",&n);
long i;
for(i=1;i<=n;i++)
fscanf(f,"%ld",&a[i]);
long k,max=0;
l[n]=1;
for(k=n-1;k>=1;k--)
{
max=0;
for(i=k+1;i<=n;i++)
if(a[k]<a[i]&&l[i]>max)
max=l[i];
l[k]=max+1;
}
long imax=n;
max=l[imax];
for(i=1;i<=n;i++)
if(l[i]>max)
{
max=l[i];
imax=i;
}
fprintf(g,"%ld\n%ld ",max,a[imax]);
for(i=imax+1;i<=n;i++)
if(a[imax]<a[i]&&l[i]==max-1)
fprintf(g,"%ld ",a[i]),max--;
return 0;
}