Submission #1319821

#TimeUsernameProblemLanguageResultExecution timeMemory
1319821ElayV13Table Tennis (info1cup20_tabletennis)C++17
100 / 100
273 ms23684 KiB
//g++ -o sol sol.cpp
//cd C:\Users\Asus-1\OneDrive\Desktop
#include <bits/stdc++.h>
using namespace std;
int n,k;
vector<int>a;
signed main(){
        ios_base::sync_with_stdio();
        cin.tie(0);
	cout.tie(0);
	cin>>n>>k;
	a.resize(n+k);
	for(int i=0;i<n+k;i++) cin>>a[i];
	sort(a.begin(),a.end());
	map<int,int>cnt;
	int mx=-1;
	for(int i=0;i<min(500,n+k);i++){
		for(int j=max(0,n-500);j<n+k;j++){
			cnt[a[i]+a[j]]++;
			mx=max(mx,cnt[a[i]+a[j]]);
		}
	}
	set<int>all;
	for(int i=0;i<min(500,n+k);i++){
		for(int j=max(0,n-500);j<n+k;j++){
			if(cnt[a[i]+a[j]]==mx) all.insert(a[i]+a[j]);
		}
	}
	for(int vl:all){
		vector<int>res;
		int l=0,r=n+k-1;
		while(l<r){
			if(a[l]+a[r]==vl){
				res.push_back(a[l]);
				res.push_back(a[r]);
				if(res.size()==n) break;
				++l;
				--r;
			}
			else if(a[l]+a[r]>vl) --r;
			else ++l;
		}
		if(res.size()==n){
			sort(res.begin(),res.end());
			for(int x:res)cout<<x<<' ';
			cout<<endl;
			return 0;
		}
	}
}
#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...