#include using namespace std; /* const int MAXN = 5010; int a[MAXN], b[MAXN], N, levi[MAXN]; bool check (int K) { cerr << "BS " << K << endl; int idx = 0; for (int i = 1; i <= N; i++) { while (idx+1 <= N && b[idx+1] <= a[i]-K) { } } /*multiset A, B; for (int i = 1; i <= N; i++) { A.insert(a[i]); B.insert(b[i]); } while (!A.empty()) { int minA = *A.begin(); int minB = *B.begin(); if (minA < minB) { auto x = B.lower_bound(minA+K); if (x == B.end()) return false; cerr << 'A' << minA << ' ' << *x << endl; A.erase(A.begin()); B.erase(x); } else { auto x = A.lower_bound(minB+K); if (x == A.end()) return false; cerr << 'B' << minB << ' ' << *x << endl; A.erase(x); B.erase(B.begin()); } } return true; } int main() { ios::sync_with_stdio(false); cin.tie(0); int t; cin >> t; while(t--) { 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+1+N); sort(b+1, b+1+N); int l = 0, r = 1000000000, rez = 0; while (l <= r) { int mid = (l+r)/2; if (check(mid)) { l = mid+1; rez = mid; } else { r = mid-1; } } cout << rez << '\n'; } return 0; }*/ int n; int a[5003]; int b[5003]; int levi[5003]; int desni[5003]; bool moze(int a[], int b[], int s) { int p=0,q=0; for (;p=s) q++; levi[p]=q; } //cout<<"UMRI PEDERCINO "<=najde) continue; int nemoze=najde-najle-1; //cout<<"["<