Submission #1319091

#TimeUsernameProblemLanguageResultExecution timeMemory
1319091noobsolver24Table Tennis (info1cup20_tabletennis)C++20
34 / 100
32 ms5976 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define all(v) v.begin(), v.end()
#define rall(v) v.rbegin(), v.rend()

const int sz = 2e5 + 5, inf = 1e18, mod = 1e9 + 7, lg = 21;

int a[sz];

void _(){
  int n, k;
  cin >> n >> k;
  for (int i = 1; i <= n + k; i++) {
    cin >> a[i];
  }
  map<int, int> mp;
  sort(a + 1, a + n + k + 1);
  for (int i = 1; i <= k + 1; i++) {
    for (int j = n + k - (k + 1) + 1; j <= n + k; j++) {
      int sum = a[i] + a[j];
      mp[sum]++;
    }
  }
  int mx = 0;
  for (auto [x, y] : mp) {
    mx = max(mx, y);
  }
  for (auto [x, y] : mp) {
    if (mx == y) {
      int sum = x;
      int l = 1, r = n + k, ans = 0;
      vector<int> v;
      while (l < r and ans < n) {
        if (a[l] + a[r] == sum) {
          ans += 2;
          v.push_back(a[l++]);
          v.push_back(a[r--]);
        } else if (a[l] + a[r] > sum) {
          r--;
        } else l++;
      }
      if (ans == n) {
        sort(all(v));
        for (auto x : v) cout << x << ' ';
        cout << endl;
        return;
      }
    }
  }
}

signed main(){
    cin.tie(nullptr)->sync_with_stdio(0);
    int T = 1;
    // cin >> T;
    while (T--) _();
}
#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...