제출 #1317953

#제출 시각아이디문제언어결과실행 시간메모리
1317953ayazTable Tennis (info1cup20_tabletennis)C++20
72 / 100
894 ms5824 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; #define all(x) (x).begin(), (x).end() #define isz(x) (int)(x.size()) #define int ll const int sz = 500200, inf = 1000000000; void run_case(int tc) { int n, k; cin >> n >> k; vector<int> a(n + k + 1); for (int i = 1; i <= n + k; i++) { cin >> a[i]; } set<int> sums; for (int l = 0; l <= k; l++) { for (int r = 0; r <= k; r++) { if (l + r > k) continue; int mn = a[l + 1], mx = a[n + k - r]; sums.insert(mn + mx); } } assert(isz(sums) <= 300); for (int l = 0; l <= k; l++) { for (int r = 0; r <= k; r++) { if (l + r > k) continue; // 4 // 1 2 3 4 5 6 7 8 9 10 int mn = a[l + 1], mx = a[n + k - r]; vector<pair<int, int>> v; for (int i = l + 1; i <= n + k - r; i++) { if (isz(v) == n / 2) break; int target = mx + mn - a[i]; auto j = lower_bound(a.begin() + i + 1, a.begin() + n + k - r + 1, target) - a.begin(); if (j > n + k || a[j] != target) continue; v.push_back({i, j}); } if (isz(v) == n / 2) { vector<int> ans; for (auto [x, y] : v) { ans.push_back(x); ans.push_back(y); } sort(all(ans)); for (auto i : ans) { cout << a[i] << ' '; } return; } } } } void precompute() {} signed main() { ios::sync_with_stdio(false); cin.tie(nullptr); #ifdef LOCAL // freopen("err.log", "w", stderr); #endif precompute(); int t = 1; // cin >> t; for (int tc = 1; tc <= t; tc++) run_case(tc); }
#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...