Cod sursa(job #1414250)

Utilizator DobosDobos Paul Dobos Data 2 aprilie 2015 14:21:54
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int l[100001],urm[100001],v[100001];
int main()
{
    int n,i,j,mn,mx = 0,ur;
    f>>n;
    for(i = 1; i <= n; i++)
        f>>v[i];
    for(i = n - 1; i >= 1; i--)
    {
        mn = -1;
        urm[i] = 0;
        l[i] = 1;
        for(j = i + 1; j <= n; j++)
            if(v[i] < v[j] && l[j] > mn)
        {
            mn = l[j];
            urm[i] = j;
        }
        l[i] = mn + l[i];
        if(l[i] > mx)
        {
            ur = i;
            mx = l[i];
        }

    }

   g<<mx+1<<"\n";
    while(ur != 0)
    {

        g<<v[ur]<<" ";
        ur = urm[ur];
    }

    return 0;
}