Cod sursa(job #2037017)

Utilizator alextodoranTodoran Alexandru Raul alextodoran Data 11 octombrie 2017 16:26:39
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.92 kb
#include <iostream>
#include <fstream>
#define DN 100002
using namespace std;

int n, e, v[DN], eml[DN], eeml[DN], pe[DN], iue[DN], af[DN] ,mx, imx;

int main()
{
    ifstream fin ("scmax.in");
    ofstream fout ("scmax.out");
    fin >> n;
    eeml[0] = 1;
    for(int i = 1; i <= n; i++)
    {
        fin >> v[i];
        e = v[i];
        for(int j = 0; j < i; j++)
            if(e > eml[j] && eeml[j] && (!eeml[j + 1] || e < eml[j + 1]))
            {
                eml[j + 1] = e;
                iue[j + 1] = i;
                eeml[j + 1] = 1;
                pe[i] = iue[j];
                if(j + 1 > mx)
                {
                    mx = j + 1;
                    imx = i;
                }
            }
    }
    fout << mx << "\n";
    for(int i = imx, j = mx; j; i = pe[i], j--)
        af[j] = v[i];
    for(int i = 1; i <= mx; i++)
        fout << af[i] << " ";
    return 0;
}