| Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|---|
| 41832 | pljplj | 【S】T2 | C++ | 解答错误 | 0 | 485 MS | 4952 KB | 1154 | 2026-05-29 21:17:38 |
#include <bits/stdc++.h> using namespace std; #define int long long int n, a[300005], b[300005]; bool check(int x) { int last = -1; for (int i = 0; i < n; i++) { int l = last + 1, r = n - 1, pos = -1; while (l <= r) { int mid = (l + r) / 2; if (abs(a[i] - b[mid]) >= x) { pos = mid; l = mid + 1; } else { r = mid - 1; } } if (pos == -1) return 0; last = pos; } return 1; } signed main() { ios::sync_with_stdio(0); cin.tie(0); int T; cin >> T; while (T--) { cin >> n; for (int i = 0; i < n; i++) cin >> a[i]; for (int i = 0; i < n; i++) cin >> b[i]; sort(a, a + n); sort(b, b + n); int l = 0, r = 1e9, ans = 0; while (l <= r) { int mid = (l + r) / 2; if (check(mid)) { ans = mid; l = mid + 1; } else { r = mid - 1; } } cout << ans << '\n'; } return 0; }