Pagini recente » Cod sursa (job #1184775) | Cod sursa (job #1259919) | Cod sursa (job #230510) | Cod sursa (job #350570) | Cod sursa (job #1189268)
#define _CRT_SECURE_NO_DEPRECATE
#include <iostream>
#include <cstdio>
#include <fstream>
#include <vector>
#include <deque>
#include <set>
#include <map>
#include <list>
#include <string>
#include <iterator>
#include <algorithm>
#include <cmath>
#include <iomanip>
#include <tuple>
using namespace std;
#define NMAX 100001
int n, a[NMAX], p[NMAX];
int i, j, x, lgMax, last = -1;
int main(){
freopen("scmax.in", "r", stdin);
freopen("scmax.out", "w", stdout);
scanf("%d", &n);
for (i = 0; i < n; i++) scanf("%d", &a[i]);
for (i = n - 1; i >= 0; i--){
p[i] = 1;
for (j = i + 1; j < n; j++){
if (a[j] > a[i] && p[i] <= p[j]){
p[i] = p[j] + 1;
}
}
}
for (i = 0; i < n; i++) {
if (p[i] > lgMax){
lgMax = p[i];
}
}
printf("%d\n", lgMax);
for (i = 0; i < n; i++){
if (p[i] == lgMax && a[i] > last){
last = a[i];
lgMax--;
printf("%d ", a[i]);
}
}
return 0;
}