제출 #302791

#제출 시각아이디문제언어결과실행 시간메모리
302791Sho10Table Tennis (info1cup20_tabletennis)C++14
100 / 100
1664 ms5948 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 all(a) (a).begin(), (a).end() #define sz size #define f first #define s second #define pb push_back #define er erase #define in insert #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; int32_t main(){ CODE_START; cin>>n>>k; for(ll i=1;i<=n+k;i++) { cin>>a[i]; } sort(a+1,a+n+k+1); for(ll i=k+1;i>=1;i--) { for(ll j=n+k;j>=n+(i-1);j--) { ll l=i; ll r=j; ll s1=0,s2=0; v.clear(); ll nr=k-i+1-(n+k-j); while(l<r&&nr>=0){ if(a[l]+a[r]==a[i]+a[j]){ v.pb(a[l]); v.pb(a[r]); l++; r--; s2++; }else if(a[l]+a[r]<a[i]+a[j]){ nr--; l++; }else if(a[l]+a[r]>a[i]+a[j]){ nr--; r--; } if(s2>=n/2){ s1=1; break; } } if(s1==1){ sort(v.begin(),v.end()); for(auto it : v){ cout<<it<<' '; } 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...