Submission #1207134

#TimeUsernameProblemLanguageResultExecution timeMemory
1207134lopkusTable Tennis (info1cup20_tabletennis)C++20
34 / 100
3097 ms16320 KiB
#include <bits/stdc++.h>

using namespace std;

void solve() {
  srand(time(0));
  int n, k;
  std::cin >> n >> k;
  std::vector<int> a(n + k + 1);
  for(int i = 1; i <= n + k; i++) {
    std::cin >> a[i];
  }
  std::function<int()> random = [&] () {
    return (rand() % n) + 1;
  };
  std::function<void(int)> Do = [&] (int s) {
    std::map<int, int> pos;
    for(int i = 1; i <= n + k; i++) {
      pos[a[i]] = i;
    }
    std::vector<int> ans;
    std::vector<int> was(n + k + 1);
    for(int i = 1; i <= n + k && ans.size() < n; i++) {
      if(was[i]) {
        continue;
      }
      if(pos[s - a[i]] > i) {
        was[pos[s - a[i]]] = 1;
        ans.push_back(a[i]);
        ans.push_back(s - a[i]);
      }
    }
    if(ans.size() == n) {
      std::sort(ans.begin(), ans.end());
      for(int i = 0; i < n; i++) {
        std::cout << ans[i] << " ";
      }
      exit(0);
    }
  };
  random_shuffle(a.begin() + 1, a.end());
  for(int i = 1; i <= 20; i++) {
    for(int j = 1; j <= n; j++) {
      if(i == j) {
        continue;
      }
      Do(a[i] + a[j]);
    }
  }
  std::cout << - 1;
}

signed main() {
  std::ios::sync_with_stdio(false);
  std::cin.tie(nullptr);

  int t = 1;
  //std::cin >> t;
  while (t--) {
      solve();
  }

  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...