Submission #668140

#TimeUsernameProblemLanguageResultExecution timeMemory
668140definitelynotmeeTable Tennis (info1cup20_tabletennis)C++98
72 / 100
3060 ms43828 KiB
#include<bits/stdc++.h> using namespace std; #define ff first #define ss second #define all(x) x.begin(), x.end() using ll = long long; using pii = pair<int,int>; using pll = pair<ll,ll>; template<typename T> using matrix = vector<vector<T>>; struct hashzao{ int operator()(const int& i) const{ return i^981723478; } }; int main(){ cin.tie(0)->sync_with_stdio(0); int n, k; cin >> n >> k; vector<int> v(n+k); for(int i = 0; i < n+k; i++) cin >> v[i]; unordered_map<int,int,hashzao> sums; int minmid = max(0,(n+k)/2-k/2-3), maxmid = min(n+k-1,(n+k)/2+k/2+3); for(int offset = -k; offset <= k; offset++){ for(int i = 0; i < n+k; i++){ int y = n+k-i-1; y+=offset; if(y >= 0 && y < n+k) sums[v[i]+v[y]]++; } } auto findans =[&](int sum){ int p1 = 0, p2 = n+k-1; vector<int> resp; while(p1 < p2){ if(v[p1] + v[p2] > sum){ p2--; continue; } if(v[p1] + v[p2] < sum){ p1++; continue; } resp.push_back(v[p1]), resp.push_back(v[p2]); p1++, p2--; } sort(all(resp)); for(int i = 0; i < n; i++) cout << resp[i] << ' '; cout << '\n'; }; // for(pii i : sums) // cout << i.ff << ' ' << i.ss << '\n'; for(pii i : sums){ if(i.ss < n) continue; int sum = i.ff; int resp = 0; int p1 = 0, p2 = n+k-1; while(p1 < p2){ if(v[p1] + v[p2] > sum){ p2--; continue; } if(v[p1] + v[p2] < sum){ p1++; continue; } p1++, p2--; resp++; } //cout << sum << ' ' << resp << '\n'; if(resp >= n/2){ findans(sum); return 0; } } //exit(1); }

Compilation message (stderr)

tabletennis.cpp: In function 'int main()':
tabletennis.cpp:31:9: warning: unused variable 'minmid' [-Wunused-variable]
   31 |     int minmid = max(0,(n+k)/2-k/2-3), maxmid = min(n+k-1,(n+k)/2+k/2+3);
      |         ^~~~~~
tabletennis.cpp:31:40: warning: unused variable 'maxmid' [-Wunused-variable]
   31 |     int minmid = max(0,(n+k)/2-k/2-3), maxmid = min(n+k-1,(n+k)/2+k/2+3);
      |                                        ^~~~~~
#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...