Submission #1317467

#TimeUsernameProblemLanguageResultExecution timeMemory
1317467Muhammad_AneeqTable Tennis (info1cup20_tabletennis)C++20
87 / 100
3101 ms270832 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...