魔法扑克牌
题号:NC312368
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

\hspace{15pt}魔术师林尼有一个 n 张牌构成的牌堆 a,每张牌上有一个整数,表示这张牌的点数。

\hspace{15pt}林尼可以从牌堆中抽出两张牌 a_ia_j,如果 \left\lvert i-j \right\rvert = 1,则他可以变以下两种魔术之一:
\hspace{23pt}\bullet\,将两张牌的点数变为 a_i+1a_j+1,然后放回牌堆;
\hspace{23pt}\bullet\,将两张牌的点数变为 a_i-1a_j-1,然后放回牌堆。

\hspace{15pt}你同样有一个包含 n 张牌的牌堆 b。你想知道,林尼能否通过任意次(可以是 0 次)魔术将他的牌堆变得和你手上的牌堆一样。我们称两组牌堆是完全相同的,当且仅当对于任意满足 1 \leqq i \leqq n 的正整数 i,均有 a_i = b_i 恒成立。

\hspace{15pt}请注意,牌堆中可出现点数一样的牌,且点数一样的牌之间没有任何区别。

输入描述:

\hspace{15pt}每个测试文件均包含多组测试数据。第一行输入一个整数 T\left(1\leqq T\leqq 10^4\right) 代表数据组数,每组测试数据描述如下:

\hspace{15pt}第一行输入一个整数 n\left(1\leqq n\leqq 10^6\right) 代表牌堆中牌的数量。
\hspace{15pt}第二行输入 n 个整数 a_1, a_2, \ldots, a_n\left(1\leqq a_i\leqq 10^5\right) 代表林尼的牌堆里的牌。
\hspace{15pt}第三行输入 n 个整数 b_1, b_2, \ldots, b_n\left(1\leqq b_i\leqq 10^5\right) 代表你的牌堆里的牌。

\hspace{15pt}除此之外,保证单个测试文件的 n 之和不超过 10^6

输出描述:

\hspace{15pt}对于每一组测试数据,新起一行,如果林尼可以通过任意次(可以是 0 次)魔术将他的牌堆变得和你手上的牌堆一样,请输出 \texttt{Yes};否则输出 \texttt{No}
示例1

输入

复制
3
3
1 10 100
100 10 1
2
1 2
99 100
3
1 2 3
1 1 6

输出

复制
Yes
Yes
No

说明

\hspace{15pt}对于第一组测试数据,对前两张牌连续执行 99 次魔术一,再对后两张牌连续执行 99 次魔术二,即可得到目标牌堆,因此输出 \texttt{Yes}
\hspace{15pt}对于第二组测试数据,对两张牌连续执行 98 次魔术一,即可得到目标牌堆,因此输出 \texttt{Yes}
\hspace{15pt}对于第三组测试数据,可以证明目标牌堆是不可能变出的,因此输出 \texttt{No}