Pagini recente » Cod sursa (job #6969) | Cod sursa (job #2384047) | Cod sursa (job #299671) | Cod sursa (job #1565382) | Cod sursa (job #1276379)
//#include <iostream>
#include <fstream>
using namespace std;
int maxim[100100], pre[10010], suc[100100], v[100100];
int main() {
ifstream in("scmax.in");
ofstream out("scmax.out");
int n, i, j, maxi = 0;
in >> n;
for (i = 0; i < n; i++)
in >> v[i];
maxim[0] = 1;
for (i = 1; i < n; ++i) {
maxim[i] = 0;
for (j = 0; j < i; ++j) {
if (v[j] < v[i]) {
if (maxim[j] > maxim[i]) {
maxim[i] = maxim[j];
pre[i] = j;
}
}
}
++maxim[i];
if (maxim[i] > maxi)
maxi = i;
}
out << maxim[maxi] << "\n";
int k = 0;
while (maxi) {
suc[maxi] = k;
k = maxi;
maxi = pre[maxi];
}
while (k) {
out << v[k] << " ";
k = suc[k];
}
in.close();
out.close();
return 0;
}