Pagini recente » Cod sursa (job #3195560) | Cod sursa (job #2678700) | Cod sursa (job #1463401) | Cod sursa (job #3170855) | Cod sursa (job #2174486)
#include <iostream>
#include <fstream>
#define maxN 100005
#include <queue>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
long long n, L[maxN], pre[maxN], MAXval, MAXpoz;
long long A[maxN];
int main () {
fin >> n;
for (int i = 1; i <= n; ++i) {
fin >> A[i];
}
L[n] = 1;
for (int i = n-1; i >= 1; --i) {
for (int j = i+1; j <= n; ++j) {
if (A[i] < A[j] and L[i] < L[j] + 1) {
L[i] = L[j]+1;
pre[i] = j;
}
}
if (L[i] > MAXval) {
MAXval = L[i];
MAXpoz = i;
}
}
fout << MAXval << '\n';
int i = MAXpoz;
while (i) {
fout << A[i] << " ";
i = pre[i];
}
}