VegiCat은 지뢰 제거 임무를 수행하고 있습니다. 수직선 위에 $n$개의 지뢰가 있습니다. 지뢰 $i$는 정수 좌표 $a_i$에 있습니다. 지뢰들은 좌표 순서대로 번호가 매겨져 있어 $a_1 \le a_2 \le \cdots \le a_n$을 만족합니다. 지뢰의 좌표는 겹칠 수 있습니다.
VegiCat은 $1, 2, \ldots, n$의 순서로 각 지뢰를 한 번씩 검사합니다. 지뢰 $i$에 대해 그는 검사 위치로 정수 좌표 $b_i$를 선택하며, 이 값은 음수이거나 $0$일 수도 있습니다. 이 검사의 오차는 $|a_i - b_i|$입니다.
각 $2 \le i \le n$에 대해, 지뢰 $i - 1$과 지뢰 $i$의 검사 위치 사이에 필요한 최소 거리를 지정하는 정수 $l_i$가 주어집니다. 이 위치들은 다음을 만족해야 합니다:
$$|b_i - b_{i-1}| \ge l_i.$$
VegiCat이 최대 검사 오차를 최소화할 수 있도록 도와주세요. 즉, 다음 값을 구하세요:
$$\min_{\substack{b_1, \ldots, b_n \in \mathbb{Z} \\ |b_i - b_{i-1}| \ge l_i \ (2 \le i \le n)}} \left(\max_{1 \le i \le n} |a_i - b_i|\right).$$
입력
첫 번째 줄에 테스트 케이스의 개수를 나타내는 정수 $T$ ($1 \le T \le 10^4$)가 주어집니다. 이어서 테스트 케이스의 설명이 주어집니다.
각 테스트 케이스의 첫 번째 줄에는 지뢰의 개수를 나타내는 정수 $n$ ($2 \le n \le 10^5$)이 주어집니다.
두 번째 줄에는 $n$개의 정수 $a_1, a_2, \ldots, a_n$ ($1 \le a_i \le 10^9$)이 주어지며, 여기서 $a_i$는 지뢰 $i$의 좌표입니다. $a_1 \le a_2 \le \cdots \le a_n$임이 보장됩니다.
세 번째 줄에는 $n - 1$개의 정수 $l_2, l_3, \ldots, l_n$ ($1 \le l_i \le 10^9$)이 주어지며, 여기서 $l_i$는 지뢰 $i - 1$과 지뢰 $i$의 검사 위치 사이의 최소 거리입니다.
모든 테스트 케이스에서 $n$의 합이 $10^5$을 넘지 않음이 보장됩니다.
출력
각 테스트 케이스마다 최대 검사 오차의 가능한 최솟값을 나타내는 정수를 출력합니다.
예제
입력 1
2 2 1 1 1 7 2 6 12 14 14 16 19 11 8 4 2 10 9
출력 1
1 6
참고
첫 번째 테스트 케이스에서 $b_1 = 1$, $b_2 = 2$로 선택하면 최대 오차는 $1$이 됩니다. 오차가 $0$이 되려면 $b_1 = b_2 = 1$이어야 하는데, 이는 거리 조건을 위반합니다.
두 번째 테스트 케이스에서 최적의 선택 중 하나는 $b = [-4, 7, 15, 10, 8, 22, 13]$입니다. 모든 필수 거리 조건을 만족하며, 최대 오차는 $6$입니다.