#include <bits/stdc++.h>
using namespace std;
#define all(x) x.begin(), x.end()
#define pb push_back
#define F first
#define S second
const int N = 2e5 + 7;
int a[N];
void solve(){
int n, k;
cin>>n>>k;
for(int i = 1; i <= n + k; i++){
cin>>a[i];
}
sort(a + 1, a + n + k + 1);
for(int i = 1; i <= k + 1; i++){
for(int j = n + k; j >= n - 1; j--){
int sum = a[i] + a[j];
int x = i, y = j, cnt = (i - 1) + (n + k - j);
while(x < y && cnt <= k){
if(a[x] + a[y] < sum){
x++;
cnt++;
}
else if(a[x] + a[y] > sum){
y--;
cnt++;
}
else{
x++;
y--;
}
}
if(cnt > k) continue;
vector<int>v;
x = i, y = j;
while(x < y && v.size() < n){
if(a[x] + a[y] < sum){
x++;
cnt++;
}
else if(a[x] + a[y] > sum){
y--;
cnt++;
}
else{
v.pb(x);
v.pb(y);
x++;
y--;
}
}
sort(all(v));
for(auto it : v){
cout<<a[it]<<' ';
}
return;
}
}
}
signed main(){
ios_base :: sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
int t = 1;
//cin>>t;
while(t--){
solve();
}
}
# | 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... |