Cod sursa(job #1687396)

Utilizator roxi22Roxi C. roxi22 Data 12 aprilie 2016 20:36:04
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <fstream>

using namespace std;

ifstream fin("scmax.in");
ofstream fout("scmax.out");

#define nmax 100001

int a[nmax],l[nmax],poz[nmax];
int n,m,primul;

void subsir()
{   for(int i=n;i>=1;i--)
        {l[i]=1;
        poz[i]=0;
        for(int j=i+1;j<=n;j++)
            if(a[i]<a[j]&&l[i]<1+l[j])
                {l[i]=l[j]+1;
                poz[i]=j;}
        if(m<l[i])
            {m=l[i];
            primul=i;}}}


int main(){

    fin>>n;
    for(int i=1;i<=n;i++)
        fin>>a[i];
    subsir();
    fout<<m<<"\n";
    for(int i=primul;i>0;i=poz[i])
        fout<<a[i]<<" ";
    return 0;
}