Pagini recente » Cod sursa (job #1720609) | Cod sursa (job #1370348) | Cod sursa (job #1383113) | Cod sursa (job #1362899) | Cod sursa (job #1967932)
#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 s[DN], m;
map<int, int> parent;
void ins(int x) {
int pos = upper_bound(s, s+m, x-1) - s;
if (pos == m) {
s[m++] = x;
} else {
s[pos] = x;
}
if (pos != 0)
parent[x] = s[pos-1];
}
void print_sol(int nr) {
if (nr < 0)
return;
print_sol(nr-1);
fout << s[nr] << " ";
}
int main() {
int n, x;
fin >> n;
for (int i = 0; i < n; ++i) {
fin >> x;
ins(x);
}
fout << m << '\n';
print_sol(m-1);
return 0;
}