CF1848C Vika and Price Tags
题目描述
Vika 来到她最喜欢的化妆品店“Golden Pear”。她注意到自上次来访以来,有 $n$ 件商品的价格发生了变化。
她决定分析这些商品的价格变化,并计算了每件商品新旧价格之间的差值。
Vika 很喜欢计算价格差,于是决定继续进行这个过程。
设旧价格为一个非负整数数组 $a$,新价格为一个非负整数数组 $b$,两个数组长度均为 $n$。
在一次操作中,Vika 构造一个新数组 $c$,其规则为:$c_i = |a_i - b_i|$。然后,将数组 $c$ 赋值给数组 $b$,同时将数组 $b$ 赋值给数组 $a$,之后 Vika 用它们重复进行操作。
例如,如果 $a = [1, 2, 3, 4, 5, 6, 7]$,$b = [7, 6, 5, 4, 3, 2, 1]$,那么 $c = [6, 4, 2, 0, 2, 4, 6]$。然后,$a = [7, 6, 5, 4, 3, 2, 1]$,$b = [6, 4, 2, 0, 2, 4, 6]$。
Vika 决定称一对数组 $a$、$b$ 为“dull”(无趣的),如果经过若干次这样的操作后,数组 $a$ 的所有元素都变为零。
如果原始的价格数组对是“dull”,输出 "YES";否则输出 "NO"。
输入格式
每组测试数据包含多个测试用例。第一行包含一个整数 $t$($1 \le t \le 10^4$)——表示测试用例的数量。
每个测试用例的第一行包含一个整数 $n$($1 \le n \le 10^5$)——表示价格发生变化的商品数量。
第二行包含 $n$ 个整数 $a_1, a_2, \ldots, a_n$($0 \le a_i \le 10^9$)——表示这些商品的旧价格。
第三行包含 $n$ 个整数 $b_1, b_2, \ldots, b_n$($0 \le b_i \le 10^9$)——表示这些商品的新价格。
保证所有测试用例中 $n$ 的总和不超过 $10^5$。
输出格式
对于每个测试用例,如果该对价格数组是“dull”,输出 "YES";否则输出 "NO"。
你可以以任意大小写输出每个字母。例如,"yEs"、"yes"、"Yes" 和 "YES" 都会被视为正确答案。
说明/提示
在第一个测试用例中,数组 $a$ 初始全为零。
在第二个测试用例中,第一次操作后 $a = [1, 2, 3], b = [0, 0, 0]$。第二次操作后 $a = [0, 0, 0], b = [1, 2, 3]$。
在第三个测试用例中,可以证明数组 $a$ 永远不会全为零。
由 ChatGPT 4.1 翻译