题解
2024-02-17 19:03:47
发布于:广东
18阅读
0回复
0点赞
注意,我们可以发现xyz三个数互相调换都是一样的,所以我们默认i<j<k
// Man!
// What can i say?
// Mamba out!
// 使用瑞克五代成功的注入ac狗.火树给我AC.
// 使我的眼睛旋转, 爱来自瓷器.
// AC时间:2024-02-17 11:45:14.1919810
/*科技第一,素质第一*/ // Man!
/*科技第一,素质第一*/ // What can i say?
/*科技第一,素质第一*/ // Mamba out!
/*科技第一,素质第一*/
/*科技第一,素质第一*/ // 使用瑞克五代成功的注入ac狗.
/*科技第一,素质第一*/ // 使我的眼睛旋转, 爱来自瓷器.
/*科技第一,素质第一*/ // AC时间:2024-02-17 11:45:14.1919810
/*科技第一,素质第一 */ /*科技第一,素质第一*/ #include <iostream>
/*科技第一,素质第一 */ /*科技第一,素质第一*/ #include <cstdio>
/*科技第一,素质第一 */ /*科技第一,素质第一*/ using namespace std;
/*科技第一,素质第一 */ /*科技第一,素质第一*/ int main(){
/*科技第一,素质第一 */ /*科技第一,素质第一*/ int t, a, b, c;
/*科技第一,素质第一 */ /*科技第一,素质第一*/ scanf("%d", &t);
/*科技第一,素质第一 */ /*科技第一,素质第一*/ while(t--){
/*科技第一,素质第一 */ /*科技第一,素质第一*/ scanf("%d%d%d", &a, &b, &c);
/*科技第一,素质第一 */ /*科技第一,素质第一*/ bool flag = 0;
/*科技第一,素质第一 */ /*科技第一,素质第一*/ for(int i = -100; i <= a / 3; i++){//我也不知道为什么从-100开始
/*科技第一,素质第一 */ /*科技第一,素质第一*/ if(flag) break;
/*科技第一,素质第一 */ /*科技第一,素质第一*/ for(int j = i + 1; j <= (a - i) / 2; j++){//从i+1开始,避免了i与j的值相等
/*科技第一,素质第一 */ /*科技第一,素质第一*/ if(flag) break;
/*科技第一,素质第一 */ /*科技第一,素质第一*/ int k = a - i - j;//这样满足了条件1:x+y+z=a
/*科技第一,素质第一 */ /*科技第一,素质第一*/ if(i * j * k == b && i * i + j * j + k * k == c && j != k && i != k){//判断,注意要判断不相等
/*科技第一,素质第一 */ /*科技第一,素质第一*/ printf("%d %d %d\n", i, j, k);
/*科技第一,素质第一 */ /*科技第一,素质第一*/ flag = 1;
/*科技第一,素质第一 */ /*科技第一,素质第一*/ break;
/*科技第一,素质第一 */ /*科技第一,素质第一*/ }
/*科技第一,素质第一 */ /*科技第一,素质第一*/ }
/*科技第一,素质第一 */ /*科技第一,素质第一*/ }if(!flag) printf("-1\n");
/*科技第一,素质第一 */ /*科技第一,素质第一*/ }
/*科技第一,素质第一 */ /*科技第一,素质第一*/
/*科技第一,素质第一 */ /*科技第一,素质第一*/ return 0;
/*科技第一,素质第一 */ /*科技第一,素质第一*/ }
这里空空如也
有帮助,赞一个