Cod sursa(job #3315693)

Utilizator _.diannaq._Bengescu Diana _.diannaq._ Data 15 octombrie 2025 18:52:54
Problema Subsir crescator maximal Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.81 kb
#include<bits/stdc++.h>
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");


int v[100001];
int dp[100001];
int index[100001];
int constr[100001];



int main(){
int n;
fin>>n;

for(int i=1;i<=n;i++){
        fin>>v[i];
        dp[i]=1;
        index[i]=-1;
}


for(int i=1;i<=n;i++){
    for(int j=1;j<i;j++){
        if(v[j]<v[i] && dp[i]<dp[j]+1){

                 dp[i]=dp[j]+1;
                 index[i]=j;


        }


    }
}

int maxx=0;
int r=0;
for(int i=1;i<=n;i++){
    if(dp[i]>maxx){
        maxx=dp[i];
        r=i;
    }

}

fout<<maxx<<'\n';


int j = maxx;
constr[j] = v[r];

while (index[r] != -1) {
    r = index[r];
    constr[--j] = v[r];
}


for(int i=1;i<=maxx;i++){
    fout<<constr[i]<<" ";
}









}