提交时间:2026-05-29 21:12:25

运行 ID: 41829

#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; r = mid - 1; } else { l = 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; }