Pagini recente » Cod sursa (job #1590144) | Rezervatie Naturala | Cod sursa (job #2775145) | Cod sursa (job #167250) | Cod sursa (job #1967979)
#include <fstream>
#include <iostream>
#include <algorithm>
#include <map>
#define DN 100005
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
// ifstream fin("input.txt");
// ofstream fout("output.txt");
int a[DN], s[DN], poz[DN], m;
map<int, int> parent;
void ins(int x, int ind) {
int p = upper_bound(s, s+m, x-1) - s;
s[p] = x;
poz[p] = ind;
if (p == m) ++m;
if (p != 0)
parent[ind] = poz[p-1];
}
void print_sol(int len, int prev) {
if (len > 0)
print_sol(len-1, parent[prev]);
fout << a[prev] << " ";
}
int main() {
int n, x;
fin >> n;
for (int i = 0; i < n; ++i) {
fin >> a[i];
ins(a[i], i);
}
fout << m << '\n';
print_sol(m-1, poz[m-1]);
return 0;
}