Pagini recente » Cod sursa (job #2514244) | Cod sursa (job #1323058) | Cod sursa (job #3181501) | Cod sursa (job #700798) | Cod sursa (job #758788)
Cod sursa(job #758788)
#include <cstdio>
#define NMAX 100001
using namespace std;
int n, v[NMAX], next[NMAX], r[NMAX];
int main()
{
int i, j, max = 0, poz = 0;
FILE *in = fopen("scmax.in", "r");
FILE *out = fopen("scmax.out", "w");
fscanf(in, "%d", &n);
for ( i = 0; i < n; i++)
{
fscanf(in, "%d", &v[i] );
next[i] = -1;
r[i] = 1;
}
for ( i = n - 1; i >= 0; i--)
{
for ( j = i + 1; j < n; j++)
if ( v[i] < v[j] && r[i] < r[j] + 1)
{
r[i] = r[j] + 1;
next[i] = j;
}
}
for ( i = 0; i < n; i++)
if ( r[i] > max)
{
max = r[i];
poz = i;
}
fprintf(out, "%d\n", max);
while (poz != -1)
{
fprintf(out, "%d ", v[poz]);
poz = next[poz];
}
fclose(in);
fclose(out);
return 0;
}