Cod sursa(job #2191243)

Utilizator petrea1551Petrea Calin petrea1551 Data 2 aprilie 2018 11:50:43
Problema Subsir crescator maximal Scor 35
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <bits/stdc++.h>
using namespace std;
 
int n, a[100100], b[100100], c[100100], r;
 
void print_r(int r)
{
    if (c[r] != 0)
        print_r(c[r]);
    cout << a[r] << ' ';
}
 
int main()
{
    ifstream cin("scmax.in");
    ofstream cout("scmax.out");
    cin >> n;
    for (int i = 1; i <= n; i++)
        cin >> a[i];
    for (int i = 1; i <= n; i++)
    {
        c[i] = 0;
        b[i] = 1;
        for (int j = 1; j < i; j++)
            if(a[i] > a[j] && b[j] + 1 > b[i])
            {
                b[i] = b[j] + 1;
                c[i] = j;
            }
        if (b[i] > b[r])
            r = i;
    }
    cout << b[r] << endl;
    print_r(r);
    return 0;
}