Pagini recente » Cod sursa (job #3002047) | Cod sursa (job #2167915) | Cod sursa (job #2210704) | Cod sursa (job #2163486) | Cod sursa (job #1101193)
#include <iostream>
#include <vector>
#include <fstream>
using namespace std;
int 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 = n-1; k > i; k--){
if (v[i] < v[k] && Lmax < length[k] ){
pos = k;
Lmax = length[k] ;
}
}
length[i] = Lmax+1;
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];
}
return 0;
}