#include using namespace std; const int nax = 5000 + 10, INF = 1e9; int n; int a[nax], b[nax]; bool check(int x) { for (int i = 1; i <= n; ++i) { int ptr = 0; int ptr2 = n + 1; for (int j = n; j >= 1; --j) { if (b[j] >= a[i] + x) { ptr2 = j; } } for (int j = i; j <= n; ++j) { int me = j - i + 1; while (ptr < n && b[ptr + 1] <= a[j] - x) { ptr++; } //[1...ptr] [ptr2...n] int he = 0; if (ptr > ptr2) { he = n; } else { he = ptr + (n - ptr2 + 1); } if (he < me) return false; } } return true; } void solve() { cin >> n; for (int i = 1; i <= n; ++i) cin >> a[i]; for (int i = 1; i <= n; ++i) cin >> b[i]; sort(a + 1, a + n + 1); sort(b + 1, b + n + 1); int low = 0, high = INF, mid; while (low <= high) { mid = (low + high) >> 1; if (check(mid)) { low = mid + 1; } else { high = mid - 1; } } cout << low - 1 << "\n"; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); int t; cin >> t; while (t--) { solve(); } }