← Home
write a go solution for Description:
Kristina has two arrays a and b, each containing n non-negative integers. She can perform the following operation on array a any number of times:

- apply a decrement to each non-zero element of the array, that is, replace the value of each element a_i such that a_i>0 with the value a_i-1 (1<=i<=n). If a_i was 0, its value does not change.

Determine whether Kristina can get an array b from an array a in some number of operations (probably zero). In other words, can she make a_i=b_i after some number of operations for each 1<=i<=n?

For example, let n=4, a=[3,5,4,1] and b=[1,3,2,0]. In this case, she can apply the operation twice:

- after the first application of the operation she gets a=[2,4,3,0];
- after the second use of the operation she gets a=[1,3,2,0].

Thus, in two operations, she can get an array b from an array a.

Input Format:
The first line of the input contains an integer t (1<=t<=10^4) —the number of test cases in the test.

The descriptions of the test cases follow.

The first line of each test case contains a single integer n (1<=n<=5*10^4).

The second line of each test case contains exactly n non-negative integers a_1,a_2,...,a_n (0<=a_i<=10^9).

The third line of each test case contains exactly n non-negative integers b_1,b_2,...,b_n (0<=b_i<=10^9).

It is guaranteed that the sum of n values over all test cases in the test does not exceed 2*10^5.

Output Format:
For each test case, output on a separate line:

- YES, if by doing some number of operations it is possible to get an array b from an array a;
- NO otherwise.

You can output YES and NO in any case (for example, strings yEs, yes, Yes and YES will be recognized as a positive response).

Note:
The first test case is analyzed in the statement.

In the second test case, it is enough to apply the operation to array a once.

In the third test case, it is impossible to get array b from array a.. Output only the code with no comments, explanation, or additional text.