Cod sursa(job #3354898)

Utilizator Vlad10Vlad Negut Vlad10 Data 21 mai 2026 09:33:08
Problema Subsir crescator maximal Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <fstream>

using namespace std;
ifstream fin ("scmax.in");
ifstream fout ("scmax.out");
int v[1001];
int dp[1001];
int previ[1001];
int cpy[1001];
int main()
{
    int n,pmax,vmax = -1;
    fin>>n;
    for(int i=1;i<=n;i++){
        fin>>v[i];
        dp[i] = 1;
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=i;j++){
            if(v[i]>v[j]){
                if(dp[j]+1>dp[i]){
                    dp[i] = dp[j]+1;
                    previ[i] = j;
                }
            }
        }
        if(dp[i]>vmax){
            vmax = dp[i];
            pmax = i;
        }
    }
    int i = pmax;
    while(i!=0){
        cpy[dp[i]] = v[i];
        i = previ[i];

    }
    fout<<vmax<<'\n';
    for(int i=1;i<=vmax;i++){
        fout<<cpy[i]<<' ';
    }
    return 0;
}