Pagini recente » Cod sursa (job #2793586) | Cod sursa (job #2354739) | Cod sursa (job #2473704) | Cod sursa (job #2824802) | Cod sursa (job #1268206)
#include <iostream>
#include <algorithm>
#include "stdlib.h"
#include "stdio.h"
#include <vector>
using namespace std;
int v[100000], n, m = -200000000, k = 0;
void Print(std::vector<int>& v) {
std::vector<int>::iterator it;
for(it = v.begin(); it != v.end(); ++it) {
printf("%d ", *it);
} printf("\n");
}
void getLis(vector<int>& d){
vector<vector<int>> L(d.size());
L[0].push_back(d[0]);
for(int i = 1;i < d.size();i++){
for(int j = 0; j < i;j++){
if(d[j] < d[i] && L[i].size() < L[j].size() + 1){
L[i] = L[j];
}
}
L[i].push_back(d[i]);
if((int)L[i].size() > m){
m = (int)L[i].size();
k = i;
}
}
printf("%d\n",m);
Print(L[k]);
}
int main() {
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
scanf("%d", &n);
for(int i = 0; i < n;++i)
scanf("%d",v + i);
vector<int> vec(v,v+n);
getLis(vec);
return 0;
}