CF1881D Divide and Equalize

题目描述

给你一个包含 $n$ 个正整数的数组 $a$,你可以进行以下操作: 1. 选两个数 $a_i$ 和 $a_j$ ($1 < i, j \le n$ 且 $i \ne j$)。 2. 选择 $a_i$ 的一个因数 $x$。 3. 将 $a_i$ 替换为 $\frac{a_i}{x}$,$a_j$ 替换为 $a_j \cdot x$ 请判断是否能通过有限次操作使 $a$ 中所有元素相同(可以是 $0$ 次)。 例如: $a=[100,2,50,10,1]$ 共 $5$ 个数,那么进行以下两次操作: 1. 选择 $a_3=50,a_2=2,x=5$,则 $a_3=\frac{a_3}{x}=\frac{50}{5}=10,a_2=2\cdot5=10$,$a$ 变为$[100,10,10,10,1]$ 2. 选择 $a_1=100,a_5=1,x=10$,则 $a_3=\frac{a_1}{x}=\frac{100}{10}=10,a_2=1\cdot10=10$,$a$ 变为$[10,10,10,10,10]$ 经过以上操作后,$a$ 里面的元素都变成了 $10$。

输入格式

第一行输入一个整数 $t$($1\le t\le2000$),表示有$t$组数据。 下面的每组数据: 1. 第一行输入 $n$。 2. 第二行输入 $n$ 个以空格为间隙的数字,即 $a$ 的内容 数据保证 $1 \le n \le 10^4$ $n$ 的和不超过 $10^4$,$a$ 数组中的数 $1 \le a_i \le 10^6$。

输出格式

对于每组数据,判断是否可以通过有限次操作使得 $a$ 数组中的数均相等。可以输出 `YES`,否则输出 `NO`。不区分大小写。

说明/提示

第一组样例数据已在“题目描述”中有解释。