File tree Expand file tree Collapse file tree 1 file changed +47
-0
lines changed
Expand file tree Collapse file tree 1 file changed +47
-0
lines changed Original file line number Diff line number Diff line change 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+ ```
You can’t perform that action at this time.
0 commit comments