Pagini recente » Cod sursa (job #2527888) | Cod sursa (job #2415382) | Cod sursa (job #3245480) | Cod sursa (job #1484394) | Cod sursa (job #2123786)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("scmax.in");
ofstream fout("scmax.out");
const int N_MAX = 100000 + 5;
int n, a[N_MAX], b[N_MAX], c[N_MAX], nb;
bool cmp(int lo, int hi){
return(a[lo]<a[hi]);
}
void print_ans(int ind){
if(ind){
print_ans(c[ind]);
fout << a[ind] << " ";}
}
int main () {
fin >> n;
for (int i = 1; i <= n; i++) {
fin >> a[i];
int poz = lower_bound(b + 1, b + nb + 1, i, cmp) - b;
nb = max(nb, poz);
b[poz] = i;
c[i] = b[poz - 1];
}
fout << nb << "\n";
print_ans(b[nb]);
return 0;
}
//Andrei Muntean, 2018