제출 #1317663

#제출 시각아이디문제언어결과실행 시간메모리
1317663tuncay_pashaTable Tennis (info1cup20_tabletennis)C++20
64 / 100
3125 ms879024 KiB
#include <bits/stdc++.h> using namespace std; const int B = 1e3 + 5; struct custom_hash { static uint64_t splitmix64(uint64_t x) { x += 0x9e3779b97f4a7c15; x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9; x = (x ^ (x >> 27)) * 0x94d049bb133111eb; return x ^ (x >> 31); } size_t operator()(uint64_t x) const { static const uint64_t FIXED_RANDOM = chrono::steady_clock::now().time_since_epoch().count(); return splitmix64(x + FIXED_RANDOM); } }; signed main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, k; cin >> n >> k; int m = n + k; vector < int > a(m + 1); map < int , int > is; for(int i = 1; i <= m; i++){ cin >> a[i]; is[a[i]]++; } k += (k == 1); vector < int > v; map < int, int > mp; for(int i = 1; i <= min({m, k}); i++){ for(int j = i + 1; j <= m; j++){ v.push_back(a[i] + a[j]); } } for(auto i : v)mp[i] += 2; int mx = 0; vector < int > sums; for(auto [x, cnt] : mp){ if(cnt >= mx){ mx = cnt; } } for(auto [x, cnt] : mp){ if(cnt == mx){ sums.push_back(x); } } sort(sums.rbegin(), sums.rend()); while(sums.size() > 100)sums.pop_back(); for(auto sum : sums){ deque < int > rs; for(int i = 1; i <= m; i++){ if(is[sum - a[i]] > 0 && sum - a[i] != a[i] || is[sum - a[i]] > 1){ rs.push_back(a[i]); } } if(rs.size() > n){ rs.pop_front(); rs.pop_back(); } if(rs.size() == n){ for(auto i : rs) cout << i << ' '; 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...