Submission #718188

#TimeUsernameProblemLanguageResultExecution timeMemory
718188vjudge1Table Tennis (info1cup20_tabletennis)C++17
100 / 100
65 ms5704 KiB
#include<bits/stdc++.h> using namespace std; #define int long long #define ll long long #define pii pair<int,int> #define F first #define S second #define endl '\n' #define pb push_back #define sz(a) (int)a.size() #define all(a) a.begin(),a.end() const int mod = 1e9 + 7; const int N = 1e6 + 15; const ll inf = 1e18; int n,k,o; vector<int> a; int solve(int x,int p1,int p2,int curk){ int cur = 2; while (p1<p2){ if (curk>k) break; if (a[p1]+a[p2]==x){ cur+=2; p1++;p2--; } else if (a[p1]+a[p2] < x){ curk++; p1++; } else if (a[p1]+a[p2] > x){ curk++; p2--; } } return cur; } void print(int x){ int p1=0,p2=n-1; vector<int> ans; while (p1<p2){ if (a[p1]+a[p2]==x){ ans.pb(a[p1]); ans.pb(a[p2]); if (sz(ans)==o) break; p1++;p2--; } else if (a[p1]+a[p2] < x){ p1++; } else if (a[p1]+a[p2] > x){ p2--; } } sort(all(ans)); for (auto it :ans){ cout << it << ' '; } return; } int32_t main(){ ios_base::sync_with_stdio(0);cin.tie(0); cin >> n >> k; o = n; n = n+k; a.resize(n); for (int i=0;i<n;i++){ cin >> a[i]; } k++; int ans = -1; for (int i=0;i<k;i++){ for (int j=0;j<k-i;j++){ if (solve(a[i]+a[n-1-j],i+1,n-1-j-1,i+j)>=o){ ans = a[i]+a[n-1-j]; break; } } if (ans!=-1) break; } print(ans); }
#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...