Pagini recente » Cod sursa (job #2613959) | Cod sursa (job #832618) | Cod sursa (job #826360) | Cod sursa (job #3292957) | Cod sursa (job #518398)
Cod sursa(job #518398)
#include <stdio.h>
long n, x[100000], l[100000], i, j, max, val, lung, sol[100000], poz;
int main()
{
freopen("scmax.in", "r", stdin);
freopen("scmax.out", "w", stdout);
scanf("%ld", &n);
l[0]=0;
for (i=1; i<=n; i++)
{
scanf("%ld", &x[i]);
l[i]=l[0];
for (j=1; j<i; j++)
if ((l[i]<l[j])&&(x[i]>x[j]))
l[i]=l[j];
l[i]++;
if (l[i]>max)
{
max=l[i];
val=x[i];
}//if
}//for i
poz=0;
lung=max;
val++;
for (i=n; i>0; i--)
if ((l[i]==lung)&&(x[i]<val))
{
sol[poz++]=x[i];
val=x[i];
lung--;
}//if
printf("%ld\n", max);
for (i=poz-1; i>=0; i--)
printf("%ld ", sol[i]);
return 0;
}//main