Pagini recente » Cod sursa (job #2503766) | Cod sursa (job #2173899) | Cod sursa (job #571341) | Cod sursa (job #2493480) | Cod sursa (job #2021211)
#include <fstream>
#define MAXN 100002
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int x[MAXN], lg[MAXN], pred[MAXN], n;
inline void Read() {
fin >> n;
for (int i = 1; i <= n; i++)
fin >> x[i];
}
inline void Write(int nn) {
if (nn) {
Write(pred[nn]);
fout << x[nn] << " ";
}
}
inline void Solve() {
int p = 0;
lg[1] = 1; pred[1] = 0;
for (int i = 2; i <= n; i++) {
lg[i] = 1; pred[i] = 0;
for (int j = 1; j < i; j++) {
if (lg[j] + 1 > lg[i] && x[j] < x[i]) {
lg[i] = lg[j] + 1;
pred[i] = j;
}
}
if (lg[i] > lg[p])
p = i;
}
fout << lg[p] << "\n";
Write(p);
}
int main () {
Read();
Solve();
fin.close(); fout.close(); return 0;
}