Cod sursa(job #3314491)

Utilizator amalia_ghicaAmalia Ghica amalia_ghica Data 10 octombrie 2025 10:30:20
Problema Subsir crescator maximal Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.91 kb
#include <fstream>

using namespace std;
int v[100005], prec[100005], sal[100005], afis[100005];
int main()
{
    ifstream cin("scmax.in");
    ofstream cout("scmax.out");
    int n, poz = 1, ok;
    cin >> n;
    for(int i = 1; i <= n; i++){
        cin >>v[i];
    }
    sal[0] = 1;
    for(int i = 2; i <= n; i++){
        ok = 0;
        for(int j = 0; j < poz; j++){
            if(v[sal[j]] >= v[i]){
                sal[j] = i;
                prec[i] = sal[j - 1];
                ok = 1;
                break;
            }
        }
        if(ok == 0){
            sal[poz] = i;
            prec[i] = sal[poz - 1];
            poz++;
        }
    }
    cout << poz << "\n";
    int i = sal[poz - 1], j = 0;
    while(i > 0){
        afis[j] = v[i];
        j++;
        i = prec[i];
    }
    for(i = poz - 1; i >= 0; i--){
        cout << afis[i] << " ";
    }
    return 0;
}