Submission #1132708

#TimeUsernameProblemLanguageResultExecution timeMemory
1132708sethodTable Tennis (info1cup20_tabletennis)C++20
20 / 100
3095 ms3180 KiB
#include <bits/stdc++.h> using namespace std; int main(){ int n, k; cin >> n >> k; int arr[n + k]; for(int i = 0; i < n + k; i++){ cin >> arr[i]; } int l = 0, r = n + k - 1; bool found = 0; queue<pair<int, int>> q; vector <int> ans; q.push({l, r}); map<pair<int,int>, bool> m; while(!q.empty() && !found){ // cerr << found << " "; vector<int> tmp; int l1 = q.front().first; int r1 = q.front().second; int l2 = q.front().first; int r2 = q.front().second; if(m[{l2, r2}]){ continue; } int sum = arr[l1] + arr[r1]; tmp.push_back(arr[l1]); tmp.push_back(arr[r1]); q.pop(); l1++; r1--; // cerr << l2 << " " << r2 << " " << sum << " " << endl; while(l1 < r1){ // cerr << arr[l1] << " " << arr[r1] << " " << sum << endl; if(arr[l1] + arr[r1] == sum){ // cerr << arr[l1] << " " << arr[r1] << " " << sum << endl; tmp.push_back(arr[l1]); tmp.push_back(arr[r1]); l1++; r1--; } else if(arr[l1] + arr[r1] < sum) l1++; else r1--; if(tmp.size() >= n){ found = true; ans = tmp; break; } } // cerr << tmp.size() << endl; m[{l2, r2}] = 1; q.push({l2 + 1, r2}); q.push({l2, r2 - 1}); // cerr << endl; } sort(ans.begin(), ans.end()); for(int i = 0; i < n; i++){ cout << ans[i] << " "; } cout << endl; 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...