codeforces#P1690B. Array Decrements
Array Decrements
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 \le i \le 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 \le i \le 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$.
The first line of the input contains an integer $t$ ($1 \le t \le 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 \le n \le 5 \cdot 10^4$).
The second line of each test case contains exactly $n$ non-negative integers $a_1, a_2, \dots, a_n$ ($0 \le a_i \le 10^9$).
The third line of each test case contains exactly $n$ non-negative integers $b_1, b_2, \dots, b_n$ ($0 \le b_i \le 10^9$).
It is guaranteed that the sum of $n$ values over all test cases in the test does not exceed $2 \cdot 10^5$.
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).
Input
The first line of the input contains an integer $t$ ($1 \le t \le 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 \le n \le 5 \cdot 10^4$).
The second line of each test case contains exactly $n$ non-negative integers $a_1, a_2, \dots, a_n$ ($0 \le a_i \le 10^9$).
The third line of each test case contains exactly $n$ non-negative integers $b_1, b_2, \dots, b_n$ ($0 \le b_i \le 10^9$).
It is guaranteed that the sum of $n$ values over all test cases in the test does not exceed $2 \cdot 10^5$.
Output
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).
Samples
6
4
3 5 4 1
1 3 2 0
3
1 2 1
0 1 0
4
5 3 7 2
1 1 1 1
5
1 2 3 4 5
1 2 3 4 6
1
8
0
1
4
6
YES
YES
NO
NO
YES
NO
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$.