제출 #1231734

#제출 시각아이디문제언어결과실행 시간메모리
1231734SolikhaTable Tennis (info1cup20_tabletennis)C++20
0 / 100
1097 ms298980 KiB
#include "bits/stdc++.h" using namespace std; #define int long long #define all(a) a.begin(), a.end() #define rall(a) a.rbegin(), a.rend() #define ss second #define ff first #define pb push_back void solve(){ int n, k; cin >> n >> k; int N = n + k; map<int, int> mp; vector<int> v(N); for(int i = 0; i < N; i++){ cin >> v[i]; mp[v[i]]++; } sort(all(v)); vector<int> ans; auto get = [&](int m) -> int { int a = 0, b = 0; for(int i = 0; i < N; i++){ int x = m - v[i]; if(mp[x] == 1 && x != v[i]){ if(x > v[i]){ ans.pb(v[i]); ans.pb(x); } }else if(x > v[i]) b++; else if(x < v[i]) a++; if(ans.size() == n) break; } if(ans.size() == n) return 3; if(a < b) return 2; return 1; }; int l = 1, r = v[N - 1] + v[N - 2]; while(l <= r){ int m = (l + r + 1) / 2; ans.clear(); int x = get(m); //cerr << x << ' ' << m << endl; if(x == 3) break; if(x == 2) r = m - 1; else l = m + 1; } sort(all(ans)); for(int &i : ans) cout << i << ' '; } signed main() { cin.tie(nullptr)->sync_with_stdio(false); int t = 1; //cin >> t; while(t--){ solve(); 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...