Submission #349378

#TimeUsernameProblemLanguageResultExecution timeMemory
349378Sho10Table Tennis (info1cup20_tabletennis)C++17
100 / 100
406 ms44892 KiB
#include <bits/stdc++.h> //Andrei Alexandru a.k.a Sho10
#define ll long long
#define double long double
#pragma GCC optimize("O3")
#pragma GCC optimize("Ofast")
#define aint(a) (a).begin(), (a).end()
#define f first
#define s second
#define pb push_back
#define mp make_pair
#define pi pair
#define rc(s) return cout<<s,0
#define endl '\n'
#define mod 1000000007
#define PI 3.14159265359
#define MAXN 100005
#define INF 1000000005
#define LINF 1000000000000000005ll
#define CODE_START  ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
using namespace std;
ll n,k,a[200005];
vector<ll>v;
map<ll,ll>viz;
ll check(ll sum){
	ll l=1,r=n+k;
	v.clear();
	ll cnt=0;
	while(l<r){
		if(a[l]+a[r]==sum){
			v.pb(a[l]);
			v.pb(a[r]);
			l++;
			r--;
			cnt++;
		}else if(a[l]+a[r]<sum){
			l++;
		}else {
			r--;
		}
	}
	if(cnt>=n/2){
		return 1;
	}else return 0;
}
int32_t main(){
CODE_START;
cin>>n>>k;
for(ll i=1;i<=n+k;i++)
{
	cin>>a[i];
}
for(ll i=1;i<=2*k;i++)
{
	for(ll j=n-k;j<=n+k;j++)
	{
		viz[a[i]+a[j]]++;
	}
}
for(auto it : viz){
	if(it.s<k){
		continue;
	}
	ll s1=check(it.f);
	if(s1==1){
		sort(v.begin(),v.end());
		for(auto x : v){
			cout<<x<<' ';
		}
		return 0;
	}
}
for(auto it : viz){
	ll s1=check(it.f);
	if(s1==1){
		sort(v.begin(),v.end());
		for(auto x : v){
			cout<<x<<' ';
		}
		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...