Cod sursa(job #1334237)

Utilizator BaltaretuAndreiBaltaretu Andrei BaltaretuAndrei Data 4 februarie 2015 08:39:33
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <fstream>

using namespace std;

ifstream f("scmax.in");
ofstream g("scmax.out");

int i,n,a[101],l[101],succ[101],mx,j,p;

void dinam()
{
    l[n]=1;
    succ[n]=0;
    for(i=n-1;i>=1;i--)
    {
        mx=1;
        for(j=i+1;j<=n;j++)
            if(a[i]<=a[j] && mx<l[j]+1)
            {
                mx=l[j]+1;
                p=j;

            }
        l[i]=mx;
        if(mx==1) succ[i]=0;
        else succ[i]=p;
    }
    mx=1;
    for(i=1;i<=n;i++)
        if(mx<l[i])
        {
            mx=l[i];
            p=i;
        }
        g<<mx<<endl;
        while(p>0)
        {
            g<<a[p]<<" ";
            p=succ[p];
        }
}

int main()
{
    f>>n;
    for(i=1;i<=n;i++)
        f>>a[i];
    dinam();
    return 0;
}