Pagini recente » Cod sursa (job #2437419) | Cod sursa (job #2939038) | Cod sursa (job #701724) | Cod sursa (job #189959) | Cod sursa (job #413716)
Cod sursa(job #413716)
#include <fstream>
#include <limits.h>
#define nill -1
using namespace std;
ifstream in ("scmax.in");
ofstream out("scmax.out");
int n,
*elem,
*best,
*pre;
void write(int poz) {
if (best[poz] == 1) {
out << elem[poz] << " ";
return;
}
write(pre[poz]);
out << elem[poz] << " ";
}
int main() {
in >> n;
elem = new int[n];
best = new int[n];
pre = new int[n];
for (int i = 0; i < n; i++)
in >> elem[i];
int max;
best[0] = 1;
for (int j = 1; j < n; j++) {
max = 0;
for (int k = 0; k < j; k++) {
if (elem[k] < elem[j] && best[k] > max) {
max = best[k];
pre[j] = k;
}
}
best[j] = 1 + max;
}
int max_poz = 0;
for (int i = 0; i < n; i++)
if (best[i] > best[max_poz])
max_poz = i;
out << best[max_poz] << "\n";
write(max_poz);
return 0;
}