#include <bits/stdc++.h>
using namespace std;
void main_program();
signed main(){
ios_base::sync_with_stdio(0); cin.tie(0);
main_program();
}
int n, k;
vector<int> v;
map<int, int> mp;
vector<int> s;
void main_program(){
cin >> n >> k;
v.resize(n + k); for (auto &i: v) cin >> i;
// s.resize((n+k) * k * 2 + 100);
int crr = 0;
// for (int i = 0; i < n+k; i++){
// // X = (n+k-1) - j
// // i-k <= X <= i+k
// // i-k <= (n+k-1) - j <= i+k
// // j <= (n+k-1) + k - i
// // j >= (n+k-1) - k - i
// int lb = max(i+1, (n+k-1) - k - i), rb = min(n+k-1, (n+k-1) + k - i);
// for (int j = lb; j <= rb; j++){
// // cout << ":: " << i << " " << j << "\n";
// mp[v[i] + v[j]]++;
// // s[crr++] = v[i] + v[j];
// }
// }
for (int i = 0; i < k*2; i++){
for (int j = max(i+1, n - k); j < n+k; j++){
mp[v[i] + v[j]]++;
}
}
// s[crr++] = 2'000'000'010;
sort(s.begin(), s.begin() + crr);
set<int> tmp;
for (auto i: v) tmp.insert(i);
for (auto [key, value]: mp){
if (value < min(k, n/2)) continue;
vector<int> res;
for (auto i: tmp){
if (i >= key - i) break;
if (tmp.count(key - i)) res.push_back(i);
if ((int)res.size() >= n/2) break;
}
if ((int)res.size() < n/2) continue;
for (int i = 0; i < n/2; i++) cout << res[i] << " ";
for (int i = n/2 - 1; i >= 0; i--) cout << key - res[i] << " ";
cout << "\n";
return;
}
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
340 KB |
Output is correct |
2 |
Correct |
1 ms |
340 KB |
Output is correct |
3 |
Correct |
1 ms |
408 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
8 ms |
1620 KB |
Output is correct |
2 |
Correct |
85 ms |
9864 KB |
Output is correct |
3 |
Correct |
65 ms |
9792 KB |
Output is correct |
4 |
Correct |
61 ms |
9796 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
72 ms |
9748 KB |
Output is correct |
2 |
Correct |
63 ms |
9852 KB |
Output is correct |
3 |
Correct |
75 ms |
9772 KB |
Output is correct |
4 |
Correct |
61 ms |
9736 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
2 ms |
724 KB |
Output is correct |
2 |
Correct |
3 ms |
980 KB |
Output is correct |
3 |
Correct |
3 ms |
1000 KB |
Output is correct |
4 |
Correct |
3 ms |
980 KB |
Output is correct |
5 |
Correct |
3 ms |
980 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
212 KB |
Output is correct |
2 |
Correct |
0 ms |
212 KB |
Output is correct |
3 |
Correct |
0 ms |
212 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
212 KB |
Output is correct |
2 |
Correct |
2 ms |
468 KB |
Output is correct |
3 |
Correct |
2 ms |
468 KB |
Output is correct |
4 |
Correct |
1 ms |
468 KB |
Output is correct |
5 |
Correct |
2 ms |
468 KB |
Output is correct |
6 |
Correct |
1 ms |
340 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
212 KB |
Output is correct |
2 |
Correct |
64 ms |
9900 KB |
Output is correct |
3 |
Correct |
89 ms |
9856 KB |
Output is correct |
4 |
Correct |
149 ms |
9888 KB |
Output is correct |
5 |
Correct |
157 ms |
9760 KB |
Output is correct |
6 |
Correct |
96 ms |
10248 KB |
Output is correct |
7 |
Correct |
149 ms |
9784 KB |
Output is correct |
8 |
Correct |
169 ms |
9836 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
22 ms |
4564 KB |
Output is correct |
2 |
Correct |
306 ms |
37460 KB |
Output is correct |
3 |
Correct |
268 ms |
39056 KB |
Output is correct |
4 |
Correct |
212 ms |
35080 KB |
Output is correct |
5 |
Correct |
1833 ms |
16688 KB |
Output is correct |
6 |
Correct |
124 ms |
10496 KB |
Output is correct |
7 |
Correct |
187 ms |
31736 KB |
Output is correct |
8 |
Correct |
191 ms |
34048 KB |
Output is correct |