Cod sursa(job #3211744)

Utilizator Alex_DeaconuDeaconu Alexandru Alex_Deaconu Data 10 martie 2024 11:25:46
Problema Subsir crescator maximal Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
const int dim=1000001;
int a[dim],bst[dim],pred[dim];
void afisare(int p)
{
    if(p==-1){
        return;
    }

    afisare(pred[p]);
    fout<<a[p]<<' ';
}
int main()
{
    int n,sol,lmax,p;
    fin>>n;
    for(int i=1;i<=n;i++)
        fin>>a[i];
    bst[1]=1;
    pred[1]=-1;
    for(int i=2;i<=n;i++)
    {
        bst[i]=1;
        pred[i]=-1;
        for(int j=1;j<i;j++)
        {
            if(a[j]<a[i] && 1+bst[j]>bst[i])
            {
                bst[i]=1+bst[j];
                pred[i]=j;
            }
        }

    }
    lmax=bst[1];
    p=1;
    for(int i=2;i<=n;i++)
    {
        if(bst[i]>lmax){
            lmax=bst[i];
            p=i;
        }
    }
    fout<<lmax<<'\n';
    afisare(p);
    return 0;
}