Cod sursa(job #3315695)

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


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



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

for(int i=1;i<=n;i++){
        fin>>v[i];
        dp[i]=1;
        indexx[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;
                 indexx[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 (indexx[r] != -1) {  
    r = indexx[r];         
    constr[--j] = v[r];  
}


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









}