提交时间:2026-05-29 19:35:40

运行 ID: 41757

#include <iostream> #include <vector> #include <algorithm> #include <climits> using namespace std; typedef long long ll; bool check(vector<ll>& a, vector<ll>& b, ll mid) { int n = a.size(); int cnt = 0; int j = 0; for (int i = 0; i < n; i++) { while (j < n && b[j] < a[i] - mid) j++; if (j < n && b[j] <= a[i] + mid) return false; if (j == n) break; cnt++; j++; } return cnt == n; } int main() { ios::sync_with_stdio(false); cin.tie(0); int t; cin >> t; while (t--) { int n; cin >> n; vector<ll> a(n), b(n); for (int i = 0; i < n; i++) cin >> a[i]; for (int i = 0; i < n; i++) cin >> b[i]; sort(a.begin(), a.end()); sort(b.begin(), b.end()); ll l = 0, r = 1e18, ans = 0; while (l <= r) { ll mid = (l + r) / 2; if (check(a, b, mid)) { ans = mid; l = mid + 1; } else { r = mid - 1; } } cout << ans << '\n'; } return 0; }