#include <bits/stdc++.h>
using namespace std;
int main() {
int n, k;
cin >> n >> k;
vector<int> arr(n + k);
for (int i = 0; i < n + k; i++) {
cin >> arr[i];
}
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
while (true) {
int i = uniform_int_distribution<int>(0, min(n + k - 1, k + 15))(rng);
int j = uniform_int_distribution<int>(max(0, n - i - 10), n + k - 1)(rng);
if (i + j >= n + k) continue;
int s = arr[i] + arr[i + j];
int l = 0, r = n + k - 1, f = 0;
while (l < r && f < n) {
if (arr[l] + arr[r] < s) {
l++;
} else if (arr[l] + arr[r] > s) {
r--;
} else {
f += 2;
l++;
r--;
}
}
if (f == n) {
vector<int> ja;
l = 0, r = n + k - 1;
while (l < r && ja.size() < n) {
if (arr[l] + arr[r] < s) {
l++;
} else if (arr[l] + arr[r] > s) {
r--;
} else {
ja.push_back(arr[l]);
ja.push_back(arr[r]);
l++;
r--;
}
}
sort(ja.begin(), ja.end());
for (int x : ja) cout << x << ' ';
break;
}
}
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |