Submission #675221

#TimeUsernameProblemLanguageResultExecution timeMemory
675221vjudge1Table Tennis (info1cup20_tabletennis)C++17
53 / 100
3079 ms3108 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; vector<int> a; vector<pair<int, int>> solve(int sum){ vector<pair<int, int>> result; for (int lptr=0, rptr=a.size()-1; lptr < rptr;){ int csum = a[lptr] + a[rptr]; if (csum == sum){ result.emplace_back(a[lptr++], a[rptr++]); } else if (csum > sum){ rptr--; } else{ lptr++; } } return result; } mt19937 rng(chrono::high_resolution_clock::now().time_since_epoch().count()); signed main(){ cin.tie(0)->sync_with_stdio(0); int n, k; cin >> n >> k; a.resize(n+k); for (int i=0; i<a.size(); i++) cin >> a[i]; sort(a.begin(), a.end()); vector<int> possible_sums; for (int i=0; i<=k; i++){ for (int j=0; j+i<=k; j++){ possible_sums.push_back(a[i] + a[a.size()-1-j]); } } sort(possible_sums.begin(), possible_sums.end()); possible_sums.resize(unique(possible_sums.begin(), possible_sums.end()) - possible_sums.begin()); shuffle(possible_sums.begin(), possible_sums.end(), rng); for (int s: possible_sums){ vector<pair<int, int>> result = solve(s); if (result.size() != n/2) continue; for (int i=0; i<result.size(); i++){ cout << result[i].first << " "; } for (int i=result.size()-1; i>=0; i--){ cout << result[i].second << " \n"[!i]; } break; } }

Compilation message (stderr)

tabletennis.cpp: In function 'int main()':
tabletennis.cpp:26:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   26 |     for (int i=0; i<a.size(); i++) cin >> a[i];
      |                   ~^~~~~~~~~
tabletennis.cpp:39:27: warning: comparison of integer expressions of different signedness: 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   39 |         if (result.size() != n/2) continue;
      |             ~~~~~~~~~~~~~~^~~~~~
tabletennis.cpp:40:24: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   40 |         for (int i=0; i<result.size(); i++){
      |                       ~^~~~~~~~~~~~~~
#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...