Pagini recente » Cod sursa (job #2574366) | Cod sursa (job #2320564) | Cod sursa (job #764475) | Cod sursa (job #3150683) | Cod sursa (job #1290868)
#include<fstream>
#include<iostream>
const long INF=99999;
const long NMAX=100005;
using namespace std;
int n,sol,A[NMAX],T[NMAX],D[NMAX];
int main() {
int i, j, k;
ifstream f("scmax.in");
ofstream f1("scmax.out");
f>>n;
for(i = 1; i <= n; i++) {
f>>A[i];
T[i] = INF;
j = lower_bound(T + 1, T + i + 1, A[i]) - T;
T[j] = A[i];
D[i] = j;
sol = max(sol, D[i]);
}
f1<<sol<<"\n";
for(i = n, k = sol, j = INF; i; i--)
if(D[i] == k && A[i] < j) {
T[k] = A[i];
j = A[i];
k--;
}
for(i = 1; i <= sol; i++)
f1<<T[i]<<" ";
return 0;
}