Pagini recente » Cod sursa (job #2889113) | Cod sursa (job #816476) | Cod sursa (job #2138481) | Cod sursa (job #11055) | Cod sursa (job #523247)
Cod sursa(job #523247)
#include<stdio.h>
long n, maxlg, indicemaxlg, max, lg[1000001], u[100001], a[100001], nrr;
int main()
{
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
scanf("%ld", &n);
for (long i = 1; i <= n; i ++)
scanf("%ld", &a[i]);
max = 0;
for (long j = n; j >= 1; j --)
{
maxlg = 0;
indicemaxlg = 0;
for (long i = j + 1; i <= n; i ++)
if (maxlg < lg[i] && a[i] > a[j])
{
maxlg = lg[i];
indicemaxlg = i;
}
lg[j] = maxlg+1;
u[j] = indicemaxlg;
if (lg[j] > max) max = lg[j], nrr = j;
}
printf("%ld\n", max);
while (nrr != 0)
{
printf("%ld ", a[nrr]);
nrr = u[nrr];
}
return 0;
}