#CF3755. 加模10

加模10

题目描述

给定一个包含 nn 个整数 a1,a2,,ana_1,a_2,…,a_n 的数组。

你可以任意多次地执行以下操作:

  • 选择一个下标 i(1in)i(1≤i≤n),并将元素 aia_i 的值替换为 ai+(ai%10)a_i+(a_i\%10),其中 ai%10a_i\%10aia_i 除以 1010 的余数。

对于单个下标(值为 ii),可以多次应用该操作。如果对同一下标反复应用操作,则每次都考虑当前的 aia_i 值。例如,如果 ai=47a_i=47,则在第一次操作后,我们得到 ai=47+7=54a_i=47+7=54,在第二次操作后,我们得到 ai=54+4=58a_i=54+4=58

检查是否可以通过应用多个(可能为零个)操作使所有数组元素相等。

例如,给定数组 [6,11][6,11]

  • 首先,将操作应用于数组的第一个元素。将 a1=6a_1=6 替换为 a1+(a1%10)=6+(6%10)=6+6=12a_1+(a_1\%10)=6+(6\%10)=6+6=12。我们得到数组 [12,11][12,11]
  • 然后,将操作应用于数组的第二个元素。将 a2=11a_2=11 替换为 a2+(a2%10)=11+(11%10)=11+1=12a_2+(a_2\%10)=11+(11\%10)=11+1=12。我们得到数组 [12,12][12,12]

因此,通过应用 22 次操作,可以使所有元素都相等。

输入格式

第一行包含一个整数 t(1t104)t(1≤t≤10^4),表示测试用例的数量。接下来是每个测试用例的描述。

每个测试用例的第一行包含一个整数 n(1n2105)n(1≤n≤2⋅10^5),表示数组的大小。

每个测试用例的第二行包含 nn 个整数 ai(0ai109)a_i(0≤a_i≤10^9),表示数组元素。

保证所有测试用例中 nn 的总和不超过 21052⋅10^5

输出格式

对于每个测试用例,请打印:

如果可以使所有数组元素相等,则为 YES; 否则为 NO

可以以任何形式打印 YESNO(例如,字符串 yEsyesYesYES 都将被识别为肯定答案)。

测试样例

10
2
6 11
3
2 18 22
5
5 10 5 10 5
4
1 2 4 8
2
4 5
3
93 96 102
2
40 6
2
50 30
2
22 44
2
1 5
Yes
No
Yes
Yes
No
Yes
No
No
Yes
No

样例说明

第一个测试用例已在上面进行了解释。

在第二个测试用例中,无法使所有数组元素相等。

在第三个测试用例中,需要将这个操作应用一次到所有等于 55 的元素上。

在第四个测试用例中,需要将这个操作应用到所有元素,直到它们变成等于 88

在第五个测试用例中,无法使所有数组元素相等。

在第六个测试用例中,需要将这个操作应用到所有元素,直到它们变成等于 102102