Submission #1317984

#TimeUsernameProblemLanguageResultExecution timeMemory
1317984ayazTable Tennis (info1cup20_tabletennis)C++20
100 / 100
80 ms20468 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;

int a[sz], n, k;
void check(int sum) {
  vector<pair<int, int>> v;
  int L = 1, R = n + k;
  while (L <= R && isz(v) < n / 2) {
    if(a[L] + a[R] == sum){
      v.push_back({L, R});
      L++;
      R--;
    }
    else if(a[L] + a[R] > sum) {
      R--;
    } else {
      L++;
    }
  }
  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] << ' ';
    }
    exit(0);
  }
}
void run_case(int tc) {
  cin >> n >> k;
  for (int i = 1; i <= n + k; i++) {
    cin >> a[i];
  }
  map<int, int> cnt;
  // cemin sayi maximumdursa onu duzeltmek lazimdir
  // butun cemlere baxa bilmerik amma...
  // Randoma inanaq!
  for (int l = 0; l <= k; l++) {
    for (int r = 0; r <= k; r++) {
      int mn = a[l + 1], mx = a[n + k - r]; 
      cnt[mn + mx]++;
    }
  }
  vector<int> sum[n + 1];
  for (auto &[x, y] : cnt) sum[y].push_back(x);
  for (int i = n; i >= 1; i--) {
    if (sum[i].empty()) continue;

    for (auto &sm : sum[i]) {
      check(sm);
    }
  }
}
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...