Pagini recente » Cod sursa (job #2371236) | Cod sursa (job #2979715) | Cod sursa (job #1658416) | Cod sursa (job #598494) | Cod sursa (job #3134950)
#include <iostream>
#include <fstream>
using namespace std;
#define MAXN 100010
ifstream f("scmax.in");
ofstream g("scmax.out");
int n,v[MAXN],poz[MAXN],tata[MAXN],maxim,j,x,sir[MAXN],sol[MAXN];
void afis (int nod) {
if (nod == 0) {
return;
}
afis(tata[nod]);
g << v[nod] << ' ';
}
int main()
{
f >> n;
for (int i = 1; i <= n; ++i) {
f >> v[i];
j = 1;
while (sir[j] < v[i] && j <= maxim) {
++j;
}
sir[j] = v[i];
poz[j] = i;
tata[i] = poz[j - 1];
maxim = max(j, maxim);
}
g << maxim << '\n';
afis(poz[maxim]);
return 0;
}