#include <bits/stdc++.h>
using namespace std;
const int B = 1e3 + 5;
signed main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n, k;
cin >> n >> k;
int m = n + k;
vector < int > a(m + 1);
map < int , int > is;
for(int i = 1; i <= m; i++){
cin >> a[i];
is[a[i]]++;
}
set < int > st;
map < int, int > mp;
for(int i = 1; i <= min(m, k * 4); i++){
for(int j = i + 1; j <= m; j++){
mp[a[i] + a[j]] += 2;
st.insert(a[i] + a[j]);
}
}
int mx = 0;
vector < int > sums;
for(auto x : st){
if(mp[x] >= mx){
if(mp[x] == mx)
sums.push_back(x);
else sums = {x};
mx = mp[x];
}
}
sort(sums.rbegin(), sums.rend());
while(sums.size() > 600)sums.pop_back();
for(auto sum : sums){
deque < int > rs;
for(int i = 1; i <= m; i++){
if(is[sum - a[i]] > 0 && sum - a[i] != a[i] || is[sum - a[i]] > 1){
rs.push_back(a[i]);
}
}
if(rs.size() > n){
rs.pop_front();
rs.pop_back();
}
sort(rs.begin(), rs.end());
if(rs.size() == n){
for(auto i : rs)
cout << i << ' ';
cout << endl;
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... |