Cod sursa(job #2556286)

Utilizator ND2003David Nagy ND2003 Data 24 februarie 2020 19:50:24
Problema Subsir crescator maximal Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#include <fstream>
#include <vector>

using namespace std;
ifstream cin("scmax.in");
ofstream cout("scmax.out");
struct adat
{
    long long nr;
    int poz,best;
};

int i,n,j,maxi,p;
vector<adat>x;

int main()

{
    cin>>n;
    x.resize(n+1);

    for(i=1;i<=n;++i)
        cin>>x[i].nr;

    x[n].best=1;
    x[n].poz=-1;
    maxi=1;
    p=n;
    for(i=n-1;i>=1;--i)
    {

        for(j=i+1;j<=n;++j)
            if(x[i].nr<x[j].nr && x[i].best<x[j].best)
            {
                x[i].best=x[j].best+1;
                x[i].poz=j;
                if(x[i].best>maxi) maxi=x[i].best,p=i;
            }

    }

    cout<<maxi<<"\n";
    i=p;

    while(i!=-1)
    {
        cout<<x[i].nr<<" ";
        i=x[i].poz;
    }




    return 0;
}