#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]]++;
}
k += (k == 1);
vector < int > v;
map < int, int > mp;
for(int i = 1; i <= min(k + 1, m); i++){
for(int j = m; j >= max(m - k - 1, 1); j++){
if(j > i)
v.push_back(a[i] + a[j]);
}
}
for(auto i : v)mp[i] += 2;
int mx = 0;
vector < int > sums;
for(auto [x, cnt] : mp){
if(cnt >= mx){
if(cnt == mx)
sums.push_back(x);
else sums = {x};
mx = cnt;
}
}
sort(sums.rbegin(), sums.rend());
while(sums.size() > 100)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();
}
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... |