Cod sursa(job #1893457)

Utilizator Train1Train1 Train1 Data 25 februarie 2017 18:15:43
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int v[100001], l[100001], p[100001], n, aux, lmax;
void afis(int aux) {
    if(p[aux]!=0) {
        afis(p[aux]);
        fout<<v[aux]<<' ';
    } else {
        fout<<v[aux]<<' ';
    }
}
int main()
{
    fin>>n;
    for (int i = 1; i <= n; i++) {
        fin>>v[i];
    }
    for (int i = 2; i <= n; i++) {
        for (int j = i -1; j >= 1; j--) {
            if (v[j] < v[i] && l[j] >= l[i]) {
                l[i] = l[j] + 1;
                p[i] = j;
                if (l[i] > lmax) {
                    lmax = l[i];
                    aux = i;
                }
            }
        }
    }
    fout<<lmax + 1<<'\n';
    afis(aux);
    fin.close();
    fout.close();
    return 0;
}