//g++ -o sol sol.cpp
//cd C:\Users\Asus-1\OneDrive\Desktop
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define ld long double
const int INF=1e9+5;
#define S(a) a.begin(),a.end()
#define pb push_back
#define READ(l , r , a) for(int i = l;i <= r;i++) cin >> a[i]
#define printV(l , r , a) for(int i = l;i <= r;i++) cout << a[i] << ' ';
#define pii pair < int , int >
#define FOR(i , l , r) for(int i = l;i <= r;i++)
int n,k;
int a[150500];
bool ok(int vl){
int l=0,r=n+k-1,cnt=0;
while(l<r){
if(a[l]+a[r]==vl){
++cnt;
++l;
--r;
}
else if(a[l]+a[r]>vl){
--r;
}
else{
++l;
}
}
return (cnt>=n/2);
}
vector<int>get_res(int vl){
vector<int>res;
int l=0,r=n+k-1;
while(l<r and res.size()<n){
if(a[l]+a[r]==vl){
res.push_back(a[l]);
res.push_back(a[r]);
++l;
--r;
continue;
}
else if(a[l]+a[r]>vl){
--r;
}
else{
++l;
}
}
sort(S(res));
return res;
}
void solve(){
cin>>n>>k;
for(int i=0;i<n+k;i++) cin>>a[i];
sort(a,a+n+k);
set<int>all;
for(int i=0;i<=k;i++) for(int j=n-1;j<n+k;j++) all.insert(a[i]+a[j]);
vector<int>pos;
for(auto x : all) pos.pb(x);
for(int vl : pos){
if(ok(vl)){
vector<int>res=get_res(vl);
for(int i=0;i<n;i++) cout<<res[i]<<' ';
cout<<endl;
return;
}
}
}
signed main(){
ios_base::sync_with_stdio();
cin.tie(0);
cout.tie(0);
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... |