이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |