Submission #1269813

#TimeUsernameProblemLanguageResultExecution timeMemory
1269813AlebnZalmoxis (BOI18_zalmoxis)C++20
0 / 100
144 ms16532 KiB
#include <bits/stdc++.h>
#define int long long
#define pii pair<int,int>
#define ff first
#define ss second
#define all(x) x.begin(),x.end()
using namespace std;

signed main() {
    int n, k;
    cin >> n >> k;
    int ork = k;
    vector<int> a(n);
    for(auto& i : a) cin >> i;
    vector<int> res;
    function<int(int,int,int)> dfs = [&](int i, int l, int r)->int{
        if(!i || l > r) return 0;
        int prev = l, sum = 0;
        for(int j = l; j <= r; j++) {
            if(a[j] == i) {
                sum += dfs(i - 1, prev, j - 1) + 1;
                prev = j + 1;
                res.push_back(i);
            }
        }
        sum += dfs(i - 1, prev, r);
        if(i != 30 && sum % 2) {
            res.push_back(i);
            sum++;
            k--;
        }
        return sum / 2;
    };
    dfs(30, 0, n - 1);
    assert(!k);
    for(auto i : res) cout << i << " ";
    cout << "\n";
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...