Cod sursa(job #2457669)
| Utilizator | Data | 18 septembrie 2019 14:50:07 | |
|---|---|---|---|
| Problema | Subsir crescator maximal | Scor | 70 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.66 kb |
#include <bits/stdc++.h>
using namespace std;
int v[100005], l[100005], preds[100005], n, ml = 0, maxl;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
void f(int i) {
if(preds[i] != -1) {
f(preds[i]);
}
(fout << v[i]).put(' ');
}
int main() {
int i, j, k;
fin >> n;
for(i = 0; i < n; ++i) {
fin >> v[i]; k = 0; preds[i] = -1;
for(j = 0; j < i; ++j) {
if(v[j] < v[i] && k < l[j]) {
k = l[j];
preds[i] = j;
}
}
l[i] = 1 + k;
if(l[ml] < l[i]) ml = i;
}
(fout << l[ml]).put('\n');
f(ml);
}