有三个非负整数a、b、c,现按随机顺序给出它们的两两和以及总和4个整数,即a+b、a+c、b+c、a+b+c,注意,给出的4个数的顺序是随机的,请根据这四个数求出a、b、c是多少?

【输入形式】

   输入为一行4个正整数,x1x2x3x40≤xi≤109),表示a+b、a+c、b+c、a+b+c结果的随机顺序的值,输入保证能求出结果。

【输出形式】

  输出为一行,以非递减的方式输出ab、c,注意ab、c可能相等。

【样例输入1】

3 6 5 4
【样例输出1】

1 2 3【输入形式】

   输入为一行4个正整数,x1x2x3x40≤xi≤109),表示a+b、a+c、b+c、a+b+c结果的随机顺序的值,输入保证能求出结果。

【输出形式】

  输出为一行,以非递减的方式输出ab、c,注意ab、c可能相等。

【样例输入1】

3 6 5 4
【样例输出1】

1 2 3

不妨设a<b<c,则a+b<a+c<b+c<a+b+c
所以对四个数排序可知分别是什么,再解出a,b,c
代码:

#include<bits/stdc++.h>//万能头文件
using namespace std;
int main(){
    int a[4];
    cin>>a[0]>>a[1]>>a[2]>>a[3];//输入4个数(我用的是数组,好排序)
    sort(a,a+4);//将数组排序(STL YYDS)
    cout<<a[3]-a[2]<<" "<<a[3]-a[1]<<" "<<a[3]-a[0];//输出即为a,b,c
    return 0;
}