Cod sursa(job #2812353)

Utilizator luciabianca2405Tudorache Lucia Bianca luciabianca2405 Data 4 decembrie 2021 13:59:15
Problema Subsir crescator maximal Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <fstream>
#define dmax 100001
using namespace std;
int N,X[dmax],DP[dmax],succ[dmax];
ifstream fin("scmax.in");
ofstream fout("scmax.out");
void read()
{
    fin>>N;
    for(int i=1; i<=N; i++)
        fin>>X[i];
}
void subsir()
{
    int mx=0;
    for(int i=N; i>=1; i--)
    {
        mx=0;
        for(int j=i+1; j<=N; j++)
            if(X[j]>X[i]&&DP[j]>mx)
                mx=DP[j],succ[i]=j;
        DP[i]=mx+1;
    }
}
void afis()
{
    int mx=0,p;
    for(int i=1; i<=N; i++)
        if(DP[i]>mx)
            mx=DP[i],p=i;
    fout<<mx<<'\n';
    while(mx)
    {
        fout<<X[p]<<' ';
        p=succ[p],mx--;
    }
}
int main()
{
    read();
    subsir();
    afis();
    return 0;
}