| Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|---|
| 41757 | pljplj | 【S】T2 | C++ | 解答错误 | 0 | 489 MS | 23332 KB | 1145 | 2026-05-29 19:35:40 |
#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; }