Cod sursa(job #2086550)

Utilizator qThunderStefan Durlanescu qThunder Data 12 decembrie 2017 10:30:44
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
#include <fstream>
using namespace std;
const int NMAX=100002;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int n,a[NMAX],l[NMAX],lmax,pm,ant[NMAX];
void afisaren(int p)
{
    if(ant[p]!=p)
    {
        afisaren(ant[p]);
    }
    fout<<a[p]<<" ";
}
int main()
{   int i,j;
    fin>>n;
    for(i=1;i<=n;i++)
    {
        fin>>a[i];
    }
    l[1]=1;
    ant[1]=1;
    lmax=1;
    pm=1;
    for(i=2;i<=n;i++)
    {
        l[i]=1;
        ant[i]=i;
        for(j=1;j<=i-1;j++)
        {
            if(a[i]>a[j])
            {
                if(l[j]+1>l[i])
                {
                    l[i]=l[j]+1;
                    ant[i]=j;
                }
            }
        }
        if(l[i]>lmax)
        {
            lmax=l[i];
            pm=i;
        }
    }
    fout<<lmax<<"\n";
    afisaren(pm);
    return 0;
}