Pagini recente » Cod sursa (job #345790) | Cod sursa (job #273593) | Cod sursa (job #1460227) | Cod sursa (job #964717) | Cod sursa (job #2174423)
#include <iostream>
#include <fstream>
#define maxN 100005
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int 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 = n; j > i; --j) {
if (A[i] < A[j] and L[j] >= L[i]) {
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];
}
}