Pagini recente » Cod sursa (job #2249856) | Cod sursa (job #2897664) | Cod sursa (job #1130109) | Cod sursa (job #358079) | Cod sursa (job #2738604)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int n, a[100005], len[100005], lmax;
int main() {
fin >> n;
for(int i = 1; i <= n; i++)
fin >> a[i];
for(int i = 1; i <= n ; i++) {
int l = 0, r = lmax, ans = -1;
while(l <= r) {
int m = l+(r-l)/2;
if(len[m] < a[i]) {
ans = m;
l = m+1;
} else {
r = m-1;
}
}
len[ans+1] = a[i];
lmax = max(lmax, ans+1);
}
fout << lmax << '\n';
for(int i = 1; i <= lmax; i++)
fout << len[i] << ' ';
}