#include<iostream>
#include <cmath>
using namespace std;
int main(){
	int t;
	cin>>t;
	while(t--){
		int n;
		cin>>n;
		long long int a[2*n];
		for(int i = 0;i < 2*n;i++){
			cin>>a[i];
		}
		
		long long int tm[n];
		for(int i = 0;i < n;i++){
			cin>>tm[i];
		}
	
//		long long int temp = 0,j = 0;
//		int x;
//		for(int i = 0;i < 2*n - 2;i+=2){
//			temp = a[i+2] - a[i+1];
//			x = a[i];
//			a[i]+=tm[j];
//			if(a[i] > a[i+1]){
//			//	cout<<x<<" "<<a[i+1]<<"HI"<<endl;
//				a[i+1] = a[i] + (a[i+1] - x + 1)/2;
//				
//				a[i+2] = a[i+1] + temp;
//			}
//			j++;
//		}
//		a[2*n - 2]+=tm[n-1];
	
	
		
//		int arr = a[0],dep = a[1],j = 0;
//		for(int i = 0;i < 2*n-1;i+=2){
//			if(dep >= arr && i >= 1){
//				arr = dep + a[i] - a[i-1];
//			}
//			arr = arr + tm[j];
//			dep = a[i+1];
//			if(arr >= dep){
//				dep = arr + (a[i+1] - a[i] + 1)/2 ;
//			} 
//			j++;
//			cout<<arr<<" "<<dep<<endl;
//		}
//		for(int i = 0;i < 2*n;i++){
//			cout<<a[i]<<" ";
//		}
//		cout<<endl;
		
//		cout<<arr<<endl;
	
	int arr,dep,j = 0,temp = 0,i;
	for(i = 0; i < 2*n - 2;i+=2){
		if(temp != 0){
			arr = temp + tm[j];
			temp = 0;
		}else{
			arr = a[i] + tm[j];
		}
		
		dep  = max(a[i+1],arr+((a[i+1] - a[i] + 1) / 2));
		if(dep > a[i+1]){
			temp = dep + (a[i+2] - a[i+1]);  
		}
		j++;
	}
	if(temp != 0){
		arr = temp + tm[j];
	}else{
		arr = a[i] + tm[j];
	}
	
		cout<<arr<<endl;
	}
}