#include <bits/stdc++.h>
using namespace std;
#define int unsigned long long
const int inf = 1e9;
void solve(){
int n, k; cin >> n >> k;
vector<int> a(n + k);
for (int i = 0; i < n + k; i++ ) {cin >> a[i];}
// sort(a.begin(), a.end());
auto check = [&](int x, int L, int R) -> void {
int l = L, r = R, f = 0;
while(l < r) {
if(f == n) break;
if(a[l] + a[r] == x) {
f+=2;
l++;
r--;
} else if(a[l] + a[r] > x) {
r--;
} else {
l++;
}
}
if (f == n){
vector<int> v;
int l = L, r = R;
while(l < r) {
if (v.size() >= n) break;
if(a[l] + a[r] == x) {
v.push_back(a[l]);
v.push_back(a[r]);
l++;
r--;
} else if(a[l] + a[r] > x) {
r--;
} else {
l++;
}
}
sort(v.begin(), v.end());
for (int i : v) cout << i << ' '; cout << endl;
exit(0);
}
return;
};
for (int i = 0; i < k + 1; i++ ) {
for (int j = i + n - 1; j < n + k; j++) {
check(a[i] + a[j], i, j);
}
}
}
signed main(){
cin.tie(0) -> sync_with_stdio(0);
int t = 1;
// cin >> t;
while (t--)solve();
}
// 5 8 10 15 19
// ^ ^
//
// 23
# | 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... |