| Run ID | 作者 | 问题 | 语言 | 测评结果 | 时间 | 内存 | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|
| 320017 | xiang | 最大的和 T5 | C++ | 通过 | 27 MS | 1044 KB | 748 | 2026-05-02 15:25:00 |
#include <bits/stdc++.h> using namespace std; typedef long long ll; const ll N = 2e5 + 10; ll n, d, a[N], b[N]; int main() { ll ans = -1; cin >> n >> d; for (int i = 1; i <= n; i++) cin >> a[i]; for (int i = 1; i <= n; i++) cin >> b[i]; sort(a + 1, a + 1 + n); sort(b + 1, b + 1 + n); for (int i = 1; i <= n; i++) { // 在 b 中找 <= a[i] + d 的最大值 ll j = upper_bound(b + 1, b + 1 + n, a[i] + d) - b; j--; // 前一个元素即为候选 if (j < 1 || j > n) continue; if (b[j] >= a[i] - d && b[j] <= a[i] + d) { ans = max(ans, a[i] + b[j]); } } if (ans == -1) cout << "None"; else cout << ans; return 0; }