Submission #776444

#TimeUsernameProblemLanguageResultExecution timeMemory
776444HD1Table Tennis (info1cup20_tabletennis)C++14
72 / 100
237 ms4556 KiB
//we are all lost trying to be someone.
#include <bits/stdc++.h>
#define fastio ios_base::sync_with_stdio(0); cin.tie(0);
#define sz(x) ll(x.size())
#define reve(x) reverse(x.begin(),x.end())
#define ff first
#define ss second
using namespace std;
typedef int ll;
typedef long double ld;
typedef pair<ll,ll> ii;
const ll MAX=3*(1e6+100);
const ll mod=1e9+7;
const ll inf=1e18+7;
ll A[MAX], s[1610];
vector<ll >c;
bool nice=false;
ll n, k;
void solve(ll sum){
	ll j=n+k-1;
	for(ll i=0; i<n+k and A[i]<sum/2; i++){
		while(j-1>=0 and A[j-1]>=sum-A[i]){
			j--;
		}
		if( j>i and A[j]==sum-A[i]){
			c.push_back(A[j]);
			c.push_back(A[i]);
			if(sz(c)>=n){
				nice=true;
				return;
			}
		}
	}
	return;
}
int main(){
	cin>>n>>k;
	for(ll i=0; i<n+k; i++){
		cin>>A[i];
	}
	sort(A,A+n+k);
	ll cont=0;
	for(ll i=0; i<k+1; i++){
		for(ll j=n+k-1; j>=n-1; j--){
			s[cont]=A[i]+A[j];
			cont++;
		}
	}
	for(ll i=0; i<cont; i++){
		solve(s[i]);
		if(nice)break;
		c.clear();
	}
	sort(c.begin(),c.end());
	for(ll i=0; i<sz(c); i++){
		cout<<c[i]<<" ";
	}
	cout<<'\n';
}

Compilation message (stderr)

tabletennis.cpp:14:18: warning: overflow in conversion from 'double' to 'll' {aka 'int'} changes value from '1.0e+18' to '2147483647' [-Woverflow]
   14 | const ll inf=1e18+7;
      |              ~~~~^~
#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...