Cod sursa(job #1809325)

Utilizator vasi77Vasile Jitaru vasi77 Data 18 noiembrie 2016 20:27:12
Problema Subsir crescator maximal Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>
using namespace std;
ifstream fi("scmax.in");
ofstream fo("scmax.out");
int a[1003],n,i,j,m,L[1003],t,k,maxi,ant[1003],sol[1003],p,anterior;

int main()
{
    fi>>n;
    for(i=1;i<=n;i++)
        fi>>a[i];
    //L[1]=1;
    for(i=2;i<=n;i++)
    {
        maxi=0;anterior=0;
        for(j=1;j<i;j++)
            if(L[j]>maxi&&a[i]>a[j])
            {maxi=L[j];anterior=j;}
        L[i]=maxi+1;
        ant[i]=anterior;
    }
    maxi=L[1],p=1;
    for(i=1;i<=n;i++)
        if(maxi<L[i])
       {
           maxi=L[i];
           p=i;
       }
    fo<<maxi<<endl;
    do{
        sol[++t]=p;
        p=ant[p];
    }while(p);
    for(i=t;i>=1;i--)
    fo<<a[sol[i]]<<" ";
}