#include <bits/stdc++.h>
using namespace std;
inline void solve()
{
int n,k;
cin>>n>>k;
int a[n+k];
map<int,int>pre;
for (auto& i:a)
{
cin>>i;
pre[i]=1;
}
vector<int>z;
for (int i=0;i<n+k;i++)
{
int l=n+k,r=0;
for (int j=0;j<=min(i,k);j++)
{
int ind=i+1-j;
if (ind>n/2) continue;
int ex=(n-ind+1)-ind;
l=min(l,i+ex);
r=max(r,i+ex+k-j);
}
r=min(r,n+k);
for (int j=l;j<=r;j++)
z.push_back(a[i]+a[j]);
}
sort(begin(z),end(z));
for (int i=0;i<z.size();)
{
int j=i;
while (j<z.size()&&z[i]==z[j])
j++;
int sz=j-i;
if (sz>=n/2)
{
vector<int>ans;
for (int l=0;l<n+k&&ans.size()<n;l++)
{
if (pre.find(z[i]-a[l])==pre.end()) continue;
ans.push_back(z[i]-a[l]);
ans.push_back(a[l]);
}
sort(begin(ans),end(ans));
for (auto i:ans)
cout<<i<<' ';
cout<<endl;
return;
}
i=j;
}
}
int main()
{
ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
int t=1;
for (int i=1;i<=t;i++)
{
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... |