import java.util.*;
import java.lang.*;
import java.io.*;
class Codechef
{
{
// your code goes here
Scanner sc
=new Scanner
(System.
in); int t=sc.nextInt();
while(t-->0){
int n=sc.nextInt();
int[]a=new int[n+1];
int[]b=new int[n+1];
for(int i=1;i<=n;i++)a[i]=sc.nextInt();
for(int i=1;i<=n;i++)b[i]=sc.nextInt();
int out=solveBro(n,a,b);
}
}
public static int solveBro(int n,int[]a,int[]b){
int[]dp1=new int[n+1];
int[]dp2=new int[n+1];
if(b[1]==1){
dp1[1]=a[1];
}
dp2[1]=a[1];
for(int i=2;i<=n;i++){
if(b[i]==0){
dp1[i]=dp1[i-1];
dp2[i]=a[i]+dp1[i-1];
}
else{
dp1
[i
]=Math.
max(a
[i
]+dp1
[i
-1],
0+dp2
[i
-1]); dp2[i]=a[i]+dp2[i-1];
}
}
return dp1[n];
}
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgpjbGFzcyBDb2RlY2hlZgp7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCgkJU2Nhbm5lciBzYz1uZXcgU2Nhbm5lcihTeXN0ZW0uaW4pOwoJCWludCB0PXNjLm5leHRJbnQoKTsKCQl3aGlsZSh0LS0+MCl7CgkJICAgIGludCBuPXNjLm5leHRJbnQoKTsKCQkgICAgaW50W11hPW5ldyBpbnRbbisxXTsKCQkgICAgaW50W11iPW5ldyBpbnRbbisxXTsKCQkgICAgZm9yKGludCBpPTE7aTw9bjtpKyspYVtpXT1zYy5uZXh0SW50KCk7CgkJICAgIGZvcihpbnQgaT0xO2k8PW47aSsrKWJbaV09c2MubmV4dEludCgpOwoJCSAgICBpbnQgb3V0PXNvbHZlQnJvKG4sYSxiKTsKCQkgICAgU3lzdGVtLm91dC5wcmludGxuKG91dCk7CgkJfQoJfQoJcHVibGljIHN0YXRpYyBpbnQgc29sdmVCcm8oaW50IG4saW50W11hLGludFtdYil7CgkgICAgaW50W11kcDE9bmV3IGludFtuKzFdOwoJICAgIGludFtdZHAyPW5ldyBpbnRbbisxXTsKCSAgICBpZihiWzFdPT0xKXsKCSAgICAgICAgZHAxWzFdPWFbMV07CgkgICAgfQoJICAgIGRwMlsxXT1hWzFdOwoJICAgIGZvcihpbnQgaT0yO2k8PW47aSsrKXsKCSAgICAgICAgaWYoYltpXT09MCl7CgkgICAgICAgICAgICBkcDFbaV09ZHAxW2ktMV07CgkgICAgICAgICAgICBkcDJbaV09YVtpXStkcDFbaS0xXTsKCSAgICAgICAgfQoJICAgICAgICBlbHNlewoJICAgICAgICAgICAgZHAxW2ldPU1hdGgubWF4KGFbaV0rZHAxW2ktMV0sMCtkcDJbaS0xXSk7CgkgICAgICAgICAgICBkcDJbaV09YVtpXStkcDJbaS0xXTsKCSAgICAgICAgfQoJICAgIH0KCSAgICByZXR1cm4gZHAxW25dOwoJfQp9Cg==