Submission #499891

#TimeUsernameProblemLanguageResultExecution timeMemory
499891jesus_coconutTable Tennis (info1cup20_tabletennis)C++17
9 / 100
3098 ms57596 KiB
#include <bits/stdc++.h> #define pb push_back #define all(a) begin(a), end(a) using namespace std; int n, k; vector<int> v; void load() { cin >> n >> k; v.resize(n + k); for (auto &it : v) cin >> it; } vector<int> ans; bool solve(int suma) { ans.clear(); int l = 0, r = n + k - 1; int cnt = 0; while (l < r) { if (v[l] + v[r] == suma) { ans.pb(v[l]); ans.pb(v[r]); if (size(ans) == n) return true; ++l; --r; } else if (v[l] + v[r] < suma) { ++l; if (++cnt < k) return false; } else { --r; if (++cnt > k) return false; } } return false; } set<int> bio; void solve() { while (true) { int i = rand() % n; int j = n + k - 1 - i - (rand() % (k + 1)); if (j < 0 || bio.count(v[i] + v[j])) continue; bio.insert(v[i] + v[j]); if (solve(v[i] + v[j])) { sort(all(ans)); for (auto &it: ans) cout << it << ' '; return; } } } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); load(); sort(all(v)); solve(); return 0; }

Compilation message (stderr)

tabletennis.cpp: In function 'bool solve(int)':
tabletennis.cpp:24:18: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   24 |    if (size(ans) == n) return true;
      |        ~~~~~~~~~~^~~~
#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...