Pagini recente » Cod sursa (job #2731428) | Cod sursa (job #1235475) | Cod sursa (job #2492806) | Cod sursa (job #2984205) | Cod sursa (job #1101180)
#include <iostream>
#include <vector>
#include <fstream>
using namespace std;
void main(){
fstream file;
int Lmax, n, pos;
file.open("scmax.in", ios::in);
file >> n;
vector<int> v(n), length(n), pre(n);
for (int i = 0; i < n; i++){
file >> v[i];
}
length[n - 1] = 1;
pre[n - 1] = 0;
for (int i = n - 2; i >= 0; i--){
Lmax = 0;
pos = 0;
for (int k = i + 1; k < n; k++){
if (v[i] < v[k] && Lmax < length[k] + 1){
pos = k;
Lmax = length[k] + 1;
}
}
length[i] = Lmax;
pre[i] = pos;
}
file.close();
file.open("scmax.out", ios::out);
int max = length[0], k = 0;
for (int i = 1; i < n; i++){
if (max < length[i]){
max = length[i];
k = i;
}
}
file << max << endl;
file << v[k] << " ";
k = pre[k];
while (k != 0){
file << v[k]<<" ";
k = pre[k];
}
}