Pagini recente » Cod sursa (job #2347309) | Cod sursa (job #468603) | Cod sursa (job #579267) | Borderou de evaluare (job #1544218) | Cod sursa (job #1970567)
// cel mai lung subsir crescator.cpp : Defines the entry point for the console application.
//
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ofstream g("scmax.in");
ifstream f("scmax.out");
const int MAX = 100000;
int v[MAX], N, counter = 0;
vector<int>sol,el;
int best(int i){
counter = 0;
for (int j = i + 1; j < N; j++) {
if (v[i] < v[j] && i < j) {
counter++;
el.push_back(v[j]);
}
if(j == N - 1){
sol.push_back(counter);
return counter;
}
}
sol.push_back(counter);
return counter;
}
void text(vector<int>v) {
for (int i = 0; i < v.size(); i++) {
cout << v[i]<<endl;
}
}
void PD(int v[MAX]){
for (int i = 0; i < N; i++) {
best(i);
}
int best_length = 0,poz = 0 ;
for (int i = 0; i < N; i++) {
if (sol[i] >= best_length) {
best_length = sol[i];
poz = i;
}
}
f << best_length << endl << v[poz]<<" ";
sort(el.begin(), el.end());
unique(el.begin(), el.end());
for (int i = 0; i < best_length - 1; i++) {
f << el[i] << " ";
}
}
void citire() {
g >> N;
for (int i = 0; i < N; i++) {
g >> v[i];
}
}
int main(){
citire();
PD(v);
return 0;
}