3つのペアワイズ最大値

3つの正の(つまり厳密にゼロより大きい)整数x、yx、yが与えられますx yzz

あなたの仕事は正の整数a、ba、bを見つけることですA bccCのように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 bccc

t個の独立したテストケースに答える必要があります。印刷が必要a、ba、bA bccc任意の(任意の)順序で。

入力

入力の最初の行には、1つの整数t(1≤t≤2・1 0 4)t(1≤t≤2・10 ^ 4)が含まれています。t 1t21 04—テストケースの数。次にtttテストケースが続きます。

テストケースの唯一の行には、3つの整数x、yx、yが含まれていますx y、およびz(1≤x、y、z≤109)z(1≤x、y、z≤10^ 9)から1x および1 09

出力

テストケースごとに、答えを印刷します。

"NO"解決策が存在しない場合、出力の唯一の行。
または"YES"最初の行と正の整数の有効なトリプルa、ba、bA bおよびc(1≤a、b、c≤109)c(1≤a、b、c≤10^ 9)c 1A b c1 092行目。a、ba、bを印刷できますA bccc任意の順序。

入力

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;
}

おすすめ

転載: blog.csdn.net/weixin_43601103/article/details/112483217