题目链接
翻译
给你3条边x, y, z的范围, 且满足x < y < z, 让你选出3条合法的边, 使得这3条边能组成三角形。
保证答案总是存在。
题解
因为x < y < z, 所以x(y)和z相加的话, 肯定是大于y(x)的。 因此只要判断x+y是不是大于z就可以了。
因为说了一定会有解, 所以, 找最大的x和y, 和最小的z输出。一定能满足x+y > z的。
不满足怎么办? 出题人出来挨打吧!
代码
#include<bits/stdc++.h>
#define ll long long
#define rei(x) scanf("%d",&x)
#define rel(x) scanf("%I64d",&x)
#define rep1(i,a,b) for (int i = a;i <= b;i++)
#define rep2(i,a,b) for (int i = a;i >= b;i--)
using namespace std;
const int N = 1e6;
int T,a,b,c,d;
int main(){
#ifdef LOCAL_DEFINE
freopen("D:\\rush.txt","r",stdin);
#endif
ios::sync_with_stdio(0),cin.tie(0);
rei(T);
while(T--){
rei(a);rei(b);rei(c);rei(d);
cout<<b<<" "<<c<<" "<<c<<endl;
}
return 0;
}