欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Codeforces Round #656 (Div. 3) A. Three Pairwise Maximums

程序员文章站 2022-03-29 21:42:43
A. Three Pairwise Maximums题目链接-A. Three Pairwise Maximums题目大意给你三个正整数x、y和z,请你找到正整数a,b和c,使得x=max(a,b),y=max(a,c)x=max(a,b),y=max(a,c)x=max(a,b),y=max(a,c)且z=max(b,c)z=max(b,c)z=max(b,c),或者确定不可能找到这样的a,ba,ba,b和ccc(你可以以任意顺序输出a,b,ca,b,ca,b,c)解题思路因为x=max(...

A. Three Pairwise Maximums

题目链接-A. Three Pairwise Maximums
Codeforces Round #656 (Div. 3) A. Three Pairwise Maximums
Codeforces Round #656 (Div. 3) A. Three Pairwise Maximums
题目大意
给你三个正整数x、y和z,请你找到正整数a,b和c,使得x=max(ab)y=max(ac)x=max(a,b),y=max(a,c)z=max(bc)z=max(b,c),或者确定不可能找到这样的aba,bcc(你可以以任意顺序输出a,b,ca,b,c)

解题思路

  • 因为x=max(ab)y=max(ac)x=max(a,b),y=max(a,c)z=max(bc)z=max(b,c),我们可以得出x,y,zx,y,z中至少有两个数是相等的,且一定大于等于另一个数
  • 如果x==y则说明aa为最大值,此时需要满足a>=z,如果不满足该条件,则无解,因为z=max(bc)z=max(b,c),我们不能确定b,cb,c谁比较大,所以我们就假设两个数一样的即可。
  • 记住输出时不能输出b,cb,czzz1z-1,因为a,b,ca,b,c需要是正整数,如果z=1z=1,此时的z1z-1是不满足条件的
  • x==z时和y==z时同理
  • 具体操作见代码

附上代码

#pragma GCC optimize("-Ofast","-funroll-all-loops")
#include<bits/stdc++.h>
#define int long long
#define lowbit(x) (x &(-x))
#define endl '\n'
using namespace std;
const int INF=0x3f3f3f3f;
const int dir[4][2]={-1,0,1,0,0,-1,0,1};
const double PI=acos(-1.0);
const double e=exp(1.0);
const double eps=1e-10;
const int M=1e9+7;
const int N=2e5+10;
typedef long long ll;
typedef pair<int,int> PII;
typedef unsigned long long ull;
signed main(){
	ios::sync_with_stdio(false);
	cin.tie(0);cout.tie(0);
	
	int t;
	cin>>t;
	while(t--){
		int a=0,b=0,c=0,x,y,z;
		cin>>x>>y>>z;
		if(x==y) a=x;
		else if(y==z) c=y;
		else if(x==z) b=x;
		if((a&&a>=z)||(b&&b>=y)||(c&&c>=x)){
			cout<<"YES"<<endl;
			if(a) cout<<a<<" "<<z<<" "<<z<<endl;
			else if(b) cout<<b<<" "<<y<<" "<<y<<endl;
			else if(c) cout<<c<<" "<<x<<" "<<x<<endl;
		}
		else
			cout<<"NO"<<endl;
	}
    return 0;
}

本文地址:https://blog.csdn.net/Fiveneves/article/details/107422248

相关标签: codeforces