Pagini recente » Cod sursa (job #2546986) | Cod sursa (job #252745) | Cod sursa (job #2336007) | Cod sursa (job #699270) | Cod sursa (job #2457809)
#include <bits/stdc++.h>
using namespace std;
int main() {
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int n, x, l, b[100005], i, bn, k, aux;
fin >> n;
l = b[0] = bn = 0;
for(i = 0; i < n; ++i) {
fin >> x;
l = 0; k = bn;
while(l <= k) {
aux = (l + k) / 2;
if(b[aux] < x) l = aux + 1;
else k = aux - 1;
}
b[l] = x;
bn = max(bn, l);
}
(fout << bn).put('\n');
for(i = 1; i <= bn; ++i)
(fout << b[i]).put(' ');
}