给出三个整数 a,b,c。我们可以选择其中恰好一个数乘上某个整数 m(m 可为负、可为 0、也可为 1),然后允许对三个数任意重排。问能否得到一个等比数列。
关键等价: 三个数能重排成等比数列 (x,y,z) 当且仅当
y2=x⋅z给定三个整数 a、b、c ,你可以且必须恰好执行一次如下操作:
每个测试文件均包含多组测试数据。
第一行输入一个整数 t(1<t<104) 代表数组组数,每组测试数据描述如下:
对于每一组测试数据,新起一行。若存在可行方案,输出 YES
;否则输出 NO
。
输入
4
2 3 6
1 2 3
2 4 8
5 1 25
输出
YES
NO
YES
YES
说明
对于输入 2 3 6 ,选择将 3 乘以 6 得到 18,重排为 2、6、18 ,为等比数列(公比为 3) ;
对于输入 1 2 3 ,无论如何选择 m 与目标元素,最终均无法重排为等比数列;
对于输入 2 4 8 ,原本已可重排为等比数列,选择 m=1 即可;
对于输入 5 1 25 ,原本已可重排为等比数列,选择 m=1 即可;。
输入
3
-2 -6 -18
4 6 3
0 1 2
输出
YES
YES
YES
说明
对于输入 0 1 2 ,选择将 2 乘以 0 得到 0,重排为 1、0、0 ,首项为 1 ,公比为 0 ;
对于输入 4 6 3 ,选择将 3 乘以 3 得到 9 ,重排为 4、6、9 ,首项为 4 ,公比为 23 。