Submission #685686

#TimeUsernameProblemLanguageResultExecution timeMemory
685686heeheeheehaawTable Tennis (info1cup20_tabletennis)C++17
100 / 100
162 ms5580 KiB
#include <iostream> #include <algorithm> #define int long long using namespace std; //ifstream cin("test.in"); //ofstream cout("test.out"); int n, k; int v[200005]; pair<int, int> rez[200005]; bool possible(int sum) { int st = 0, dr = n + k - 1, cnt = 0; while (st < dr && cnt < n / 2 && (dr - st + 1) / 2 + cnt >= n / 2) { if (v[st] + v[dr] == sum) rez[cnt++] = {st++, dr--}; else if (v[st] + v[dr] < sum) st++; else dr--; } return cnt >= n / 2; } void solve() { bool ok = false; for(int i = 0; i <= k && !ok; i++) for(int j = n - 1; j < n + k && !ok; j++) if(i < j && possible(v[i] + v[j])) ok = true; sort(rez, rez + (n / 2)); for(int i = 0; i < n / 2; i++) cout<<v[rez[i].first]<<" "; for(int i = n / 2 - 1; i >= 0; i--) cout<<v[rez[i].second]<<" "; return; } signed main() { cin>>n>>k; for(int i = 0; i < n + k; i++) cin>>v[i]; 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...