#include using namespace std; int get(vector a, vector b) { assert((int)a.size() == (int) b.size()); int sol = (int) 1e9 + 7; for (int i = 0; i < (int) a.size(); i++) sol = min(sol, abs(a[i] - b[i])); return sol; } const int N = 5000 + 7; int n; int a[N]; int b[N]; void solvetc() { 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 optimal = -1; for (int cnt = 0; cnt <= n; cnt++) { vector a1, a2, b1, b2; for (int i = 1; i <= n; i++) { if (i <= cnt) a1.push_back(a[i]); else a2.push_back(a[i]); if (i >= n - cnt + 1) b2.push_back(b[i]); else b1.push_back(b[i]); } assert((int) a1.size() == (int) b2.size()); assert((int) a2.size() == (int) b1.size()); int mn = (int) 1e9 + 7; mn = min(get(a1, b2), get(a2, b1)); optimal = max(optimal, mn); } cout << optimal << "\n"; } int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int t; cin >> t; while (t--) { solvetc(); } return 0; }