A. Three Pairwise Maximums【思维】

  1. 链接

    A. Three Pairwise Maximums

  2. 题意

    给定x,y,z三个数,其中x=max(a,b)y=max(a,c)z = max(b,c),求出a,b,c.

  3. 思路

    比赛的时候,看了一下样例,猜了个结论就过去了,现在证明一下。

    假设 x ≤ y ≤ z x\leq y\leq z xyz如果 y ≠ z y\neq z y=z那么由于z是最大的,所以它至少应该出现两次,否则就是-1。那么我们就可以这样构造一组解

    x , x , z x,x,z x,x,z

  4. 代码

    #include
    using namespace std;
    
    typedef long long ll;
    const int maxn = 2e5+10;
    const int mod = 1e9+7;
    
    int a[maxn];
    
    int main(void){
    	int t;
    	cin >> t;
    	while(t--){
    		int a[3];
    		cin >> a[0] >> a[1] >> a[2];
    		sort(a,a+3);
    		if(a[1]==a[2]){
    			cout<<"YES"<<endl;
    			cout<<a[0]<<" "<<a[0]<<" "<<a[1]<<endl;
    		}else cout<<"NO"<<endl;
    		
    	}
    	return 0;
    }
     
    

你可能感兴趣的:(思维)