Submission #1207126

#TimeUsernameProblemLanguageResultExecution timeMemory
1207126lopkusTable Tennis (info1cup20_tabletennis)C++20
20 / 100
3096 ms1608 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::vector<int> ans;
    std::vector<int> was(n + 1);
    for(int i = 1; i <= n + k && ans.size() < n; i++) {
      if(was[i]) {
        continue;
      }
      for(int j = i + 1; j <= n + k; j++) {
        if(was[j]) {
          continue;
        }
        if(a[i] + a[j] == s) {
          ans.push_back(a[i]);
          ans.push_back(a[j]);
          was[i] = 1;
          was[j] = 1;
          break;
        }
      }
    }
    if(ans.size() == n) {
      std::sort(ans.begin(), ans.end());
      for(int i = 0; i < n; i++) {
        std::cout << ans[i] << " ";
      }
      exit(0);
    }
  };
  while(true) {
    int get = random();
    for(int i = 1; i <= n; i++) {
      if(i == get) {
        continue;
      }
      Do(a[get] + a[i]);
    }
  }
}

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