Submission #1319245

#TimeUsernameProblemLanguageResultExecution timeMemory
1319245noobsolver24Table Tennis (info1cup20_tabletennis)C++20
87 / 100
3093 ms10256 KiB
#pragma GCC optimize("O3")
#include <bits/stdc++.h>
using namespace std;
// #define int long long
#define endl '\n'
#define all(v) v.begin(), v.end()
#define rall(v) v.rbegin(), v.rend()

const int sz = 2e5 + 5, inf = 0 /*sonra deyis*/, 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];
  }
  unordered_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]++;
    }
  }
  for (auto [x, y] : mp) {
    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...