Pagini recente » Cod sursa (job #2322113) | Cod sursa (job #2719341) | Cod sursa (job #2389681) | Cod sursa (job #2978834) | Cod sursa (job #1971579)
// cel mai lung subsir crescator.cpp : Defines the entry point for the console application.
//
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <map>
using namespace std;
ofstream out("scmax.out");
ifstream in("scmax.in");
const int MAX = 100000;
vector<int> el, sol;
int v[MAX],N, counter = 0;
void text(vector<int>v) {
for (int i = 0; i < v.size(); i++) {
cout << v[i] << endl;
}
}
int best(int i) {
counter = 1;
for (int j = i + 1; j < N; j++) {
if (v[i] < v[j]) {
el.push_back(v[j]);
counter++;
if (j == N - 1) {
sol.push_back(counter);
return counter;
}
}
}
sol.push_back(counter);
return counter;
}
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;
}
}
out << best_length << endl << v[poz] << " ";
sort(el.begin(), el.end());
unique(el.begin(), el.end());
text(el);
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;
}