Cod sursa(job #2295125)

Utilizator Salamandra01Felmeri Zsolt Salamandra01 Data 3 decembrie 2018 10:09:07
Problema Subsir crescator maximal Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.89 kb
#include <iostream>
#include <fstream>
#include <climits>

#define N 100001

using namespace std;

int main()
{
    freopen("scmax.in", "r", stdin);
    freopen("scmax.out", "w", stdout);
    int n, maxi;
    int t[N], c[N];
    cin >> n;

    for(int i = 0; i < n; ++i){
        cin >> t[i];
        c[i] = 1;
    }

    for(int i = n-2; i >= 0; --i){
        maxi = INT_MIN;
        for(int j = i+1; j < n; ++j){
            if(t[i] < t[j]){
                if(maxi < c[j]){
                    maxi = c[j];
                }
            }
        }
        c[i] = maxi + 1;
    }

    maxi = INT_MIN;
    for(int i = 0; i < n; ++i){
        if(maxi < c[i])
            maxi = c[i];
    }
    cout << maxi << '\n';

    for(int i = 0; i < n; ++i){
        if(c[i] == maxi){
            cout << t[i] << ' ';
            maxi--;
        }
    }

    return 0;
}