Pagini recente » Cod sursa (job #2810174) | Cod sursa (job #2631430) | Cod sursa (job #332634) | Cod sursa (job #894939) | Cod sursa (job #2891191)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
#define MAXN 100000
int best[MAXN], a[MAXN], prevv[MAXN];
void reconst(int poz)
{
if(poz != -1)
{
reconst(prevv[poz]);
fout << a[poz] << " ";
}
}
int main()
{
int i, j, n, maxx, poz, maxxsir = 0, finall = 0;
fin >> n;
for(i = 0; i < n; i++)
{
fin >> a[i];
maxx = 0;
poz = -1;
for(j = 0; j < i; j++)
if(best[j] > maxx && a[j] < a[i])
{
maxx = best[j];
poz = j;
}
best[i] = maxx + 1;
prevv[i] = poz;
if(best[i] > maxxsir)
{
maxxsir = best[i];
finall = i;
}
}
fout << maxxsir << "\n";
reconst(finall);
return 0;
}