제출 #1317720

#제출 시각아이디문제언어결과실행 시간메모리
1317720tuncay_pashaTable Tennis (info1cup20_tabletennis)C++20
0 / 100
32 ms5232 KiB
#include <bits/stdc++.h> using namespace std; const int B = 1e3 + 5; 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]; } k += (k == 1); vector < int > v; map < int, int > mp; for(int i = 1; i <= min(k + 4, m); i++){ for(int j = m; j >= max(m - k - 4, 1); 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){ int l = 0, r = m - 1; deque < int > dq; while (l < r || dq.size() < n) { if (a[l] + a[r] == sum) { dq.push_back(a[l++]); dq.push_back(a[r--]); } else if (a[l] + a[r] > sum) { --r; } else { ++l; } } if (dq.size() == n) { for (int &i : dq) { cout << i << ' '; } 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...