Cod sursa(job #3356068)

Utilizator andrei_sevescusevescu andrei andrei_sevescu Data 29 mai 2026 14:53:28
Problema Subsir crescator maximal Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("scmax.in");
ofstream fout("scmax.out");

#define N 100000

int lung[N+1], prov[N+1], v[N+1];

int main(){
    int n,i,j,max,maxlung=0;
    fin >> n;
    for(i=1;i<=n;i++){
        fin >> v[i];
        max=0;
        for(j=i-1;j>0;j--)
            if(v[j]<v[i]&&lung[j]>lung[max])
                max=j;
        lung[i]=lung[max]+1;
        prov[i]=max;
        if(lung[i]>lung[maxlung])
            maxlung=i;
    }
    i=maxlung;
    j=1;
    while(i>0){
        lung[j++]=v[i];
        i=prov[i];
    }
    fout << lung[maxlung] << "\n";
    while(--j>0)
        fout << lung[j] << " ";
    return 0;
}