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;

}