Submission #1319816

#TimeUsernameProblemLanguageResultExecution timeMemory
1319816husuuuTable Tennis (info1cup20_tabletennis)C++20
100 / 100
375 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>v1;
		int l=0,r=n+k-1;
		while(l<r){
			if(a[l]+a[r]==vl){
				v1.push_back(a[l]);
				v1.push_back(a[r]);
				++l;
				--r;
			}
			else if(a[l]+a[r]>vl) --r;
			else ++l;
            if(v1.size() == n) break ;
		}
		if(v1.size()==n){
			sort(v1.begin(),v1.end());
            for(int j : v1) cout << j << ' ' ;
			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...