Algorithm

A. Three Pairwise Maximums
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output

You are given three positive (i.e. strictly greater than zero) integers xy and z.

Your task is to find positive integers ab and c such that x=max(a,b)�=max(�,�)y=max(a,c)�=max(�,�) and z=max(b,c)�=max(�,�), or determine that it is impossible to find such ab and c.

You have to answer t independent test cases. Print required ab and c in any (arbitrary) order.

Input

The first line of the input contains one integer t (1t21041≤�≤2⋅104) — the number of test cases. Then t test cases follow.

The only line of the test case contains three integers xy, and z (1x,y,z1091≤�,�,�≤109).

Output

For each test case, print the answer:

• "NO" in the only line of the output if a solution doesn't exist;
• or "YES" in the first line and any valid triple of positive integers ab and c (1a,b,c1091≤�,�,�≤109) in the second line. You can print ab and c in any order.
Example
input
Copy
5
3 2 3
100 100 100
50 49 49
10 30 20
1 1000000000 1000000000

output
Copy
YES
3 2 1
YES
100 100 100
NO
NO
YES
1 1 1000000000

Code Examples

#1 Code Example with C++ Programming

Code - C++ Programming

#include<bits/stdc++.h>
using namespace std;

#define ll long long
#define endl '\n'
#define debug(n) cout<<(n)<<endl;
const ll INF = 2e18 + 99;

int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);

int t;
cin>>t;
while(t--){
int a[3];
cin>>a[0]>>a[1]>>a[2];

sort(a, a + 3, greater<int>());

if(a[0] == a[1]){
cout<<"YES"<<endl;
cout<<a[0]<<" "<<a[2]<<" "<<a[2]<<endl;
continue;
}

cout<<"NO"<<endl;
}

}
Copy The Code &

Input

cmd
5
3 2 3
100 100 100
50 49 49
10 30 20
1 1000000000 1000000000

Output

cmd
YES
3 2 1
YES
100 100 100
NO
NO
YES
1 1 1000000000