Cod sursa(job #3314481)

Utilizator amalia_ghicaAmalia Ghica amalia_ghica Data 10 octombrie 2025 10:18:02
Problema Subsir crescator maximal Scor 95
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.89 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 = 0; i < n; i++){
        cin >>v[i];
    }
    for(int i = 1; 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;
}