#include #include #include using namespace std; double A[1000000], B[1000000]; int N; double K; double cal(double h) { double v = 0; K = 0; for(int Ni = 0; Ni < N; Ni++) { double p = max(0.0, A[Ni]-h); double t = B[Ni]*p/A[Ni]; v += t*t*p/3; K += t*t; } return v; } int main() { int T; scanf("%d", &T); while( T-- ) { scanf("%d", &N); double H = 0; for(int Ni = 0; Ni < N; Ni++) scanf("%lf", &A[Ni]), H = max(H, A[Ni]); for(int Ni = 0; Ni < N; Ni++) scanf("%lf", &B[Ni]); double V = cal(0); double l = 0, r = H; for(int i = 0; i < 30; i++) { double mid = (l+r)/2; if( cal(mid)*2 > V ) l = mid; else r = mid; } printf("%.0f\n", floor(l) ); } }