package main
import (
"bufio"
"fmt"
"os"
)
func main() {
reader := bufio.NewReader(os.Stdin)
writer := bufio.NewWriter(os.Stdout)
defer writer.Flush()
var t int
fmt.Fscan(reader, &t)
for ; t > 0; t-- {
var n int
fmt.Fscan(reader, &n)
a := make([]int, n+1)
b := make([]int, n+1)
for i := 1; i <= n; i++ {
fmt.Fscan(reader, &a[i], &b[i])
}
tm := make([]int, n+1)
for i := 1; i <= n; i++ {
fmt.Fscan(reader, &tm[i])
}
var dep int = 0
var arr int = 0
for i := 1; i <= n; i++ {
arr = dep + a[i] - b[i-1] + tm[i]
if i == n {
break
}
stay := (b[i] - a[i] + 1) / 2
dep = arr + stay
if dep < b[i] {
dep = b[i]
}
}
fmt.Fprintln(writer, arr)
}
}