Cod sursa(job #2607741)

Utilizator VinaAndreeaVina Andreea VinaAndreea Data 30 aprilie 2020 09:53:16
Problema Subsir crescator maximal Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <fstream>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int n, v[100005], dp[100005], i, j, poz, maxim;
void afisare(int poz)
{
    int i;
    for (i = poz - 1; i >= 1; i--)
    {
        if (dp[i] == dp[poz] - 1 && v[poz] > v[i])
        {
            afisare(i);
            break;
        }
    }
    fout << v[poz] << ' ';
}
int main()
{
    fin >> n;
    for (i = 1; i <= n; i++)
        fin >> v[i];
    dp[1] = 1;
    maxim = 1;
    for (i = 2; i <= n; i++)
    {
        for (j = 1; j < i; j++)
        {
            if (v[i] > v[j])
                dp[i] = dp[j] + 1;
        }
        if (dp[i] > maxim)
            maxim = dp[i], poz = i;
    }afisare(poz);

}