Submission #339160

#TimeUsernameProblemLanguageResultExecution timeMemory
339160cheissmartTable Tennis (info1cup20_tabletennis)C++14
100 / 100
538 ms33264 KiB
#include <bits/stdc++.h> #define IO_OP std::ios::sync_with_stdio(0); std::cin.tie(0); #define F first #define S second #define V vector #define PB push_back #define MP make_pair #define EB emplace_back #define ALL(v) (v).begin(), (v).end() #define debug(x) cerr << "Line(" << __LINE__ << ") -> " << #x << " is " << x << endl using namespace std; typedef long long ll; typedef pair<int, int> pi; typedef V<int> vi; const int INF = 1e9 + 7; signed main() { IO_OP; int n, k; cin >> n >> k; vi a(n + k); for(int i = 0; i < n + k; i++) cin >> a[i]; auto check = [&] (int sum) { vi ans; int l = 0, r = n + k - 1; while(l < r && ans.size() < n) { if(a[l] + a[r] == sum) { ans.PB(a[l]); ans.PB(a[r]); l++, r--; } else if(a[l] + a[r] < sum) l++; else r--; } sort(ALL(ans)); if(ans.size() == n) { for(int i:ans) cout << i << " "; cout << endl; exit(0); } }; if(n + k < 4 * k) { for(int left = 0; left <= k; left++) { for(int right = 0; right + left <= k; right++) { int l = left, r = n + k - right - 1; check(a[l] + a[r]); } } } else { unordered_map<int, int> cnt; for(int i = 0; i < 2 * k; i++) for(int j = 0; j < 2 * k; j++) cnt[a[i] + a[n + k - j - 1]]++; for(pi p:cnt) if(p.S >= k) check(p.F); } }

Compilation message (stderr)

tabletennis.cpp: In lambda function:
tabletennis.cpp:31:29: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   31 |   while(l < r && ans.size() < n) {
      |                  ~~~~~~~~~~~^~~
tabletennis.cpp:41:17: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   41 |   if(ans.size() == n) {
      |      ~~~~~~~~~~~^~~~
#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...