3つの正の(つまり厳密にゼロより大きい)整数x、yx、yが与えられますx 、yとzzと。
あなたの仕事は正の整数a、ba、bを見つけることですA 、bとccCのようにX = MAX(a、b)はX = MAX(A、B)バツ=m a x (a 、b )、y = max(a、c)y = max(a、c)そして=m a x (a 、c )およびz = max(b、c)z = max(b、c)と=m a x (b 、c )、またはそのようなa、ba、bを見つけることが不可能であると判断するA 、bとccc。
t個の独立したテストケースに答える必要があります。印刷が必要a、ba、bA 、bとccc任意の(任意の)順序で。
入力
入力の最初の行には、1つの整数t(1≤t≤2・1 0 4)t(1≤t≤2・10 ^ 4)が含まれています。t (1≤t≤2⋅1 04)—テストケースの数。次にtttテストケースが続きます。
テストケースの唯一の行には、3つの整数x、yx、yが含まれていますx 、y、およびz(1≤x、y、z≤109)z(1≤x、y、z≤10^ 9)から(1≤x 、および、と≤1 09)。
出力
テストケースごとに、答えを印刷します。
"NO"
解決策が存在しない場合、出力の唯一の行。
または"YES"
最初の行と正の整数の有効なトリプルa、ba、bA 、bおよびc(1≤a、b、c≤109)c(1≤a、b、c≤10^ 9)c (1≤A 、b 、c≤1 09)2行目。a、ba、bを印刷できますA 、bとccc任意の順序。
例
入力
5
3 2 3
100 100 100
50 49 49
10 30 20
1 1000000000 1000000000
出力
YES
3 2 1
YES
100 100 100
NO
NO
YES
1 1 1000000000
#include <bits/stdc++.h>
using namespace std;
int a[10];
int main() {
int _;
scanf("%d", &_);
while (_--) {
for (int i = 0; i < 3; i++) {
scanf("%d", &a[i]);
}
sort(a, a + 3);
if (a[1] == a[2] && a[0] <= a[1]) {
puts("YES");
printf("%d %d 1\n", a[2], a[0]);
} else {
puts("NO");
}
}
return 0;
}