解题思路
给出三个整数 a,b,c。我们可以选择其中恰好一个数乘上某个整数 m(m 可为负、可为 0、也可为 1),然后允许对三个数任意重排。问能否得到一个等比数列。
关键等价: 三个数能重排成等比数列 (x,y,z) 当且仅当
y2=x⋅z
P3668.第2题-比一比
题目内容
给定三个整数 a、b、c ,你可以且必须恰好执行一次如下操作:
- 选择一个整数 m ,并将 a、b、c 中恰好一个数乘以 m 。 完成上述操作后,你可以对这三个数进行任意重排。请判断是否存在一种选择,使得最终得到的三个数可以重排成一个等比数列。
输入描述
每个测试文件均包含多组测试数据。
第一行输入一个整数 t(1<t<104) 代表数组组数,每组测试数据描述如下:
- 在一行上输入三个整数 a,b,c(−109≤a,b,c≤109)。
输出描述
对于每一组测试数据,新起一行。若存在可行方案,输出 YES;否则输出 NO。
样例1
输入
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 即可;。
样例2
输入
3
-2 -6 -18
4 6 3
0 1 2
输出
YES
YES
YES
说明