Cod sursa(job #3341994)

Utilizator stfn99stefan stfn99 Data 22 februarie 2026 13:23:41
Problema Subsir crescator maximal Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <fstream>

using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int n,i,j,p[100001],dp[100001],v[100001],maxi,ok,poz;
int main()
{
    fin >> n;
    for(i = 1;i<=n;i++){
        fin >> v[i];
    }
    for(i = n; i>=1; i--)
    {
        dp[i] = 1;
        p[i] = n+1;
        for(j = i+1; j<=n; j++)
        {
            if(v[i]<v[j]&&dp[j]+1>dp[i])
            {
                dp[i] = dp[j]+1;
                p[i] = j;
            }

        }
    }
        for(i = 1;i<=n;i++){
            if(dp[i]>maxi){
                maxi = dp[i];
                poz = i;
            }
    }
    fout << maxi << endl;

    while(p[poz]!=n+1){
        fout << v[poz] << ' ';
        poz = p[poz];
    }
    fout << v[poz];
    return 0;
}