Pagini recente » Cod sursa (job #1806105) | Cod sursa (job #2760843) | Cod sursa (job #1397679) | Cod sursa (job #1562857) | Cod sursa (job #2637985)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
void sequence(int imax, vector<int> arr,
vector<int> next) {
if (imax != -1) {
sequence(next[imax], arr, next);
fout << arr[imax] << " ";
}
}
int main() {
int N, imax, maxlen = 1;
fin >> N;
vector<int> arr(N);
vector<int> len(N);
vector<int> next(N, -1);
for (int i = 0; i < N; ++i) {
fin >> arr[i];
}
fin.close();
len[0] = 1;
for (int i = 1; i < N; ++i) {
len[i] = 1;
for (int j = 0; j < i; ++j) {
if (arr[i] > arr[j] && len[i] < len[j] + 1) {
len[i] = len[j] + 1;
next[i] = j;
}
}
if (len[i] > maxlen) {
maxlen = len[i];
imax = i;
}
}
fout << maxlen << "\n";
sequence(imax, arr, next);
fout.close();
return 0;
}