Skip to content

Commit 371c216

Browse files
authored
Merge pull request #127 from AlgorithmWithGod/khj20006
[20250214] BOJ / G2 / 카누 선수 / 권혁준
2 parents d17f261 + 845ec9e commit 371c216

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
```cpp
2+
3+
#include <iostream>
4+
#include <vector>
5+
#include <algorithm>
6+
using namespace std;
7+
8+
int main() {
9+
cin.tie(0)->sync_with_stdio(0);
10+
11+
int T;
12+
for (cin >> T; T--;) {
13+
int K, N;
14+
cin >> K >> N;
15+
vector<int> A(N), B(N), C(N), D(N);
16+
vector<int> R1, R2;
17+
for (int &i : A) cin >> i;
18+
for (int &i : B) cin >> i;
19+
for (int &i : C) cin >> i;
20+
for (int &i : D) cin >> i;
21+
for (int i : A)for (int j : B) R1.push_back(i + j);
22+
for (int i : C)for (int j : D) R2.push_back(i + j);
23+
24+
25+
int ans = 2e9, diff = 2e9;
26+
sort(R2.begin(), R2.end());
27+
for (int i : R1) {
28+
int p = lower_bound(R2.begin(), R2.end(), K - i) - R2.begin();
29+
30+
if (p < R2.size()) {
31+
int v = abs(R2[p] + i-K);
32+
if (v < diff) diff = v, ans = R2[p] + i;
33+
else if(v == diff) ans = min(ans, R2[p] + i);
34+
}
35+
if (0 <= p-1 && p-1 <= R2.size()) {
36+
int v = abs(R2[p - 1] + i-K);
37+
if (v < diff) diff = v, ans = R2[p-1] + i;
38+
else if(v == diff) ans = min(ans, R2[p-1] + i);
39+
}
40+
}
41+
cout << ans << '\n';
42+
43+
}
44+
45+
}
46+
47+
```

0 commit comments

Comments
 (0)