Pagini recente » Cod sursa (job #2254989) | Cod sursa (job #1982371) | Cod sursa (job #830098) | Cod sursa (job #442340) | Cod sursa (job #445549)
Cod sursa(job #445549)
#include <cstdio>
#define max_N 100005
using namespace std;
int N, A[max_N], i , j, pre[max_N], maxim, best[max_N], pozinc;
int main()
{
freopen("scmax.in", "r", stdin);
freopen("scmax.out", "w", stdout);
scanf("%d", &N);
for(i = 1; i <= N; i ++)
scanf("%d", &A[i]);
best[N] = 1;
pre[N] = -1;
for(i = N - 1; i >= 1; i --)
{
for(j = i + 1; j <= N; j ++)
{
if(A[j] > A[i] && best[i] < best[j] + 1)
{
best[i] = best[j] + 1;
pre[i] = j;
}
if(best[i] > maxim)
maxim = best[i], pozinc = i;
}
}
printf("%d\n", maxim);
i = pozinc;
while(i != -1)
{
printf("%d ", A[i]);
i = pre[i];
}
return 0;
}