#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(res.size() >= n + ork);
for(auto i : res) cout << i << " ";
cout << "\n";
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |