Cod sursa(job #1782480)

Utilizator alexsandulescuSandulescu Alexandru alexsandulescu Data 18 octombrie 2016 10:10:08
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <fstream>

using namespace std;

ifstream f ("scmax.in");
ofstream g ("scmax.out");

long long N, poz, op[100003], a[100003], MAX, Max = 0, Min = 2000000003, up;
int main()
{
    f >> N;
    for(int i = 1; i <= N; i++) f >> a[i];
    op[N] = 1;
    for(int i = N; i >= 1; i--) {
        Max = 0;
        for(int j = i + 1; j <= N; j++)
            if(Max <= op[j] && a[i] < a[j]) Max = op[j];
        op[i] = Max + 1;
        if(op[i] > MAX) MAX = op[i];
    }
    g << MAX << "\n";
    while(MAX) {
        Min = 2000000003;
        for(int i = 1; i <= N; i++)
            if(op[i] == MAX && Min > a[i] && a[i] > a[up])
                Min = a[i], poz = i;
        g << a[poz] << " ";
        MAX--;
        up = poz;
    }
    g << "\n";
    return 0;
}