Cod sursa(job #2863898)

Utilizator CristianPavelCristian Pavel CristianPavel Data 7 martie 2022 13:26:34
Problema Subsir crescator maximal Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include <fstream>
using namespace std;
ifstream cin("scmax.in");
ofstream cout("scmax.out");
int v[100000],n;
int l[100000];
int urm[100000];
void afisare(int a[])
{
    for(int i=1;i<=n;i++)
        cout<<a[i]<<" ";
    cout<<endl;
}
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
        cin>>v[i];
    for(int i=n;i>=1;i--)
    {
        l[i]=1;
        for(int j=i+1;j<=n;j++)
            if(v[i]<v[j] && l[i]<=l[j])
            {
                l[i]=l[j]+1;
                urm[i]=j;
            }
    }
    int pmax=1;
    for(int i=2;i<=n;i++)
        if(l[pmax]<l[i]) pmax=i;
    cout<<l[pmax]<<endl;
    cout<<v[pmax]<<" ";
    while(urm[pmax])
    {
        cout<<v[urm[pmax]]<<" ";
        pmax=urm[pmax];
    }
    cin.close();
    cout.close();
    return 0;

}