Cod sursa(job #2028893)

Utilizator PetruZZatic Petru PetruZ Data 28 septembrie 2017 20:04:22
Problema Subsir crescator maximal Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 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, j;

void printrs(int m, int n){
    while(p[n] != m)n--;
    if(m > 1) printrs(m - 1, n - 1);
    cout << a[n] << " ";
}

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

    return 0;
}