제출 #745988

#제출 시각아이디문제언어결과실행 시간메모리
745988vjudge1Table Tennis (info1cup20_tabletennis)C++17
87 / 100
3062 ms5580 KiB
#include <bits/stdc++.h> using namespace std; int main() { int n, k; cin >> n >> k; vector<long long> x(n+k); for (int i=0; i<n+k; i++) cin >> x[i]; sort(x.begin(), x.end()); vector<long long> ans(n); bool done=false; for (int i=0; (i<k+1 && !done); i++) { for (int j=n+k-1; (j>n-k+i-2 && !done); j--){ long long sum=x[i]+x[j]; int bcnt=0, l=i+1, r=j-1; while (r>l) { if (x[l]+x[r]>sum) { r--; bcnt++; } else if (x[l]+x[r]<sum){ l++; bcnt++; } else { r--; l++; } } if (k>=bcnt+i+n+k-j-1) { done=true; int ansi=0, l=i, r=j; while (r>l) { if (x[l]+x[r]>sum) { r--; } else if (x[l]+x[r]<sum){ l++; } else { if (ansi<n) { ans[ansi++]=x[l]; ans[ansi++]=x[r]; } r--; l++; } } //cerr << i << " " << j << "\n"; } } } sort(ans.begin(), ans.end()); for (int i=0; i<n; i++) cout << ans[i] << " "; 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...