Cod sursa(job #2878872)

Utilizator preda.andreiPreda Andrei preda.andrei Data 28 martie 2022 01:19:08
Problema Subsir crescator maximal Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.81 kb
#include <fstream>
#include <vector>

using namespace std;

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

    int n;
    fin >> n;

    vector<vector<int>> dp;
    for (int i = 0; i < n; i += 1) {
        int num;
        fin >> num;

        auto placed = false;
        for (int j = dp.size() - 1; j >= 0; j -= 1) {
            if (num > dp[j].back()) {
                dp[j].push_back(num);
                placed = true;
                break;
            }
        }
        if (!placed) {
            if (dp.empty()) {
                dp.push_back(vector<int>{num});
            } else {
                dp.back().back() = num;
            }
        }
    }

    fout << dp[0].size() << "\n";
    for (const auto& num : dp[0]) {
        fout << num << " ";
    }
    fout << "\n";

    return 0;
}