Cod sursa(job #2495327)

Utilizator teisanumihai84Mihai Teisanu teisanumihai84 Data 19 noiembrie 2019 10:00:43
Problema Subsir crescator maximal Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <fstream>
#define dim 100001
using namespace std;
int v[dim], d[dim], n, i, j, maxim, t[dim], sol[dim], k, imax;
int main ()
{
    ifstream fin ("scmax.in");
    ofstream fout ("scmax.out");
    fin>>n;
    for (i=1; i<=n; i++)
        fin>>v[i];
    /// tinem in d[i] cel mai lung subsir care se termina in poz i
    for (i=1; i<=n; i++)
        for (j=1; j<i; j++)
            if (v[j]<v[i])
                if (d[j]+1>d[i])
                {
                    d[i]=d[j]+1;
                    t[i]=j;
                }
    for (i=1; i<=n; i++)
        if (d[i]>maxim)
        {
            maxim=d[i];
            imax=i;
        }
    fout<<maxim+1<<"\n";
    while (imax!=0)
    {
        sol[++k]=imax;
        imax=t[imax];
    }
    for (i=k; i>=1; i--)
        fout<<v[sol[i]]<<" ";

}