#include<bits/stdc++.h>
using namespace std;
#define ll long long int
#define db double
#define ld long double
#define rep(i,n) for(int i=0;i<n;i++)
#define rev(i,n) for(int i=n;i>=0;i--)
#define rep_a(i,a,n) for(int i=a;i<n;i++)
#define tr(ds, it) for(auto it=ds.begin(); it!=ds.end(); it++)
#define pb push_back
#define mp make_pair
#define ss second
#define ff first

typedef vector< int > vi;
typedef pair< int,int > ii;

const ll mod = 1000000007;

int ip(int n){
    if (n%2==0 || n%3==0 || n==1) return 0; 
    for (int i=5; i*i<=n; i=i+6) if (n%i==0 || n%(i+2)==0) return 0; 
  return 1; 
}

int main(){
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	#ifndef ONLINE_JUDGE
	freopen("input.txt", "r" , stdin);
	freopen("output.txt", "w" , stdout);
	#endif
	int t=1;
	cin >> t;
	while(t--){
	    ll n;
	    cin>>n;
	    ll a[n] , b[n] , c[n];
	    rep(i , n) cin>>c[i];
	    rep(i , n) cin>>a[i];
	    rep(i , n) cin>>b[i];
	    ll i=1;
	    ll maxi = 0;
	   // prev = 0;
	    ll dp[n];
	    dp[0] = 0;
	    for(int i = 1;i<n;i++){
	        ll diff = abs(b[i] - a[i]);
	        if(a[i] == b[i]){
	            dp[i] = 2 + c[i] -1;
	            continue;
	        }
	        if(i == 1){
	            dp[i] = diff + 2 + c[i] - 1;
	            continue;
	        }
	        
	        dp[i] = max(diff+2 + c[i] -1 , dp[i-1] - diff + 2 + c[i] -1);
	    }
	    ll ans = 0;
	    rep(i ,n) ans =  max(ans , dp[i]);
	    cout<<ans<<endl;
	}
	return 0;
}














