P9955 题解

设有数组 \(a\),其中元素为题目中的 7 个数。

先将这 7 个数从小到大排序,因为 \(A,B,C\in[1,10^9],A\le B\le C\),所以 \(a_1=A,a_2=B\)

接下来需要分讨,因为 \(A\le B\le C\),所以 \(C\) 只会是 \(a_3,a_4\) 的其中一个(比较 7 个数的大小即可得出此结论)。如果 \(A+B=a_3\),那么此时的 \(a_3\) 就不一定是 \(C\),输出 \(a_4\),否则输出 \(a_3\)

#include<bits/stdc++.h>

using namespace std;

typedef long long ll;

ll a[10];

int main() {
    
    for (ll i = 1; i <= 7; ++i) cin >> a[i];
    sort(a + 1, a + 8);
    cout << a[1] << ' ' << a[2] << ' ';
    if (a[1] + a[2] == a[3]) cout << a[4];
    else cout << a[3];

    return 0;
    
}
posted @ 2023-12-20 19:14  FurippuWRY  阅读(31)  评论(0)    收藏  举报