Pagini recente » Cod sursa (job #1792237) | Cod sursa (job #707932) | Cod sursa (job #1523577) | Cod sursa (job #2831806) | Cod sursa (job #2771644)
#include <iostream>
#include <fstream>
#define NMAX 100000
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int v[NMAX], best[NMAX], urm[NMAX];
int main()
{
int n, mx, maxim = 0, poz = -1;
fin >> n;
for (int i = 0; i < n; i++)
fin >> v[i];
best[n - 1] = 1;
for (int i = n - 2; i >= 0; i--)
{
mx = 1;
for (int j = i + 1; j < n; j++)
if (v[i] < v[j] && 1 + best[j] > mx)
mx = 1 + best[j], urm[i] = j;
best[i] = mx;
if (best[i] > maxim)
maxim = best[i], poz = i;
}
fout << maxim << endl;
for (int k = 0; k < maxim; k++)
{
fout << v[poz] << " ";
poz = urm[poz];
}
fin.close();
fout.close();
return 0;
}