Cod sursa(job #2028867)

Utilizator PetruZZatic Petru PetruZ Data 28 septembrie 2017 19:20:52
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
//#include <iostream>
#include <fstream>

using namespace std;

ifstream cin ("scmax.in");
ofstream cout("scmax.out");

int a[100005], b[100005], p[100005] , n, rs, prs;

void printrs(int i){
    if(p[i] != 0) printrs(p[i]);
    cout << a[i] << " ";
}

int main() {
    
    cin >> n;
    for(int i = 1; i <= n; i++) 
        {
        cin >> a[i];
        for(int j = 1; j < i; j++) if((a[j] < a[i]) && (b[i] < (b[j] + 1))) b[i] = b[j] + 1, p[i] = j;
        if(b[i] > rs) rs = b[i], prs = i;
        }
        cout << rs + 1 << '\n';
        printrs(prs);
    return 0;
}