#include<bits/stdc++.h>
using namespace std;
const int N=2e5+5;
int t,n,r[N],c[N],s,p[N];
bool vis[N];
void dfs(int now,int P[N],bool f[N])
{
if(now-1==n)
{
//cout<<now<<endl;
int S=0;
for(int i=1;i<=n;i++)
{
// cout<<P[i]<<" ";
if(P[i]>i) S+=c[P[i]];
else if(P[i]<i) S-=c[P[i]];
}
/*cout<<endl;
cout<<S<<endl;*/
s=max(S,s);
}
for(int i=1;i<=n;i++)
{
if(!f[i])
{
//cout<<f[i]<<endl;
//for(int j=1;j<=n;j++) cout<<P[j]<<" ";
//cout<<endl;
f[i]=1;
P[now]=i;
dfs(now+1,P,f);
f[i]=0;
}
}
}
int main()
{
cin>>t;
while(t--)
{
s=0;
cin>>n;
for(int i=1;i<=n;i++) cin>>r[i];
for(int i=1;i<=n;i++) cin>>c[i];
int T=0;
for(int i=1;i<n;i++) if(c[i]==c[i+1]) T++;
if(T+1==n)
{
s=abs(c[1])*(n-1);
//cout<<s<<endl;
}
else dfs(1,p,vis);
cout<<s<<endl;
}
}
应该有分啊