Untitled
unknown
c_cpp
a year ago
1.1 kB
18
Indexable
#include <bits/stdc++.h>
using namespace std;
#define ll long long
int tt, tc;
void solve() {
int n, k;
cin >> n >> k;
vector<int> a(n);
for (int& u : a) cin >> u;
sort(a.begin(), a.end());
deque<int> dq;
for (int i = 0; i < (n / 2) + (n & 1); i++) dq.push_back(a[i]);
for (int i = n - 1; i >= (n / 2) + (n & 1); --i) dq.push_back(a[i]);
vector<int> b;
bool turn = false;
while ((int)dq.size()) {
if (!turn) {
b.push_back(dq.front());
dq.pop_front();
} else {
b.push_back(dq.back());
dq.pop_back();
}
turn = !turn;
}
int mountains = 0;
for (int i = 1; i < n - 1; i++) if (b[i] > b[i - 1] && b[i] > b[i + 1]) mountains += 1;
if (mountains < k) cout << -1 << "\n";
else {
for (int u : b) cout << u << " ";
cout << "\n";
}
}
int main() {
ios::sync_with_stdio(0); cin.tie(0);
tt = 1, tc = 1; cin >> tt;
while (tt--) solve(), tc++;
}Editor is loading...
Leave a Comment