Pagini recente » Cod sursa (job #2878025) | Cod sursa (job #2431442) | Cod sursa (job #2188030) | Cod sursa (job #1721986) | Cod sursa (job #1971135)
// 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 out("scmax.out");
ifstream in("scmax.in");
const int MAX = 100000;
int v[MAX], N, counter = 0 ;
vector<int>sol,el;
int best(int i){
counter = 1 ;
for (int j = i + 1; j < N; j++) {
if (v[i] < v[j] && i < j) {
el.push_back(v[j]);
if(j == N - 1){
sol.push_back(counter);
return counter;
}
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]){
if(N == 0){
return;
}
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;
}
}
out << best_length << endl << v[poz]<<" ";
text(el);
sort(el.begin(), el.end());
unique(el.begin(), el.end());
for (int i = 0 ; i < best_length - 1; i++) {
out << el[i] << " ";
}
return;
}
void citire() {
in >> N;
for (int i = 0; i < N; i++) {
in >> v[i];
}
}
int main(){
citire();
PD(v);
return 0;
}