你知道你的ABC吗


题目

3346. 你知道你的ABC吗 - AcWing题库

Farmer John 的奶牛正在 mooZ 视频会议平台上举行每日集会。

她们发明了一个简单的数字游戏,为会议增添一些乐趣。

Elsie 有三个正整数 A、B 和 C (A≤B≤C)。

这些数字是保密的,她不会直接透露给她的姐妹 Bessie。

她告诉 Bessie 七个范围在 $1…10^9$之间的整数(不一定各不相同),并宣称这是 A、B、C、A+B、B+C、C+A 和 A+B+C 的某种排列。

给定这七个整数,请帮助 Bessie 求出 A、B 和 C。

可以证明,答案是唯一的。

输入格式

输入一行,包含七个空格分隔的整数。

输出格式

输出 A、B和 C,用空格分隔。

数据范围

$1≤所有输入的整数≤10^9$1

输入样例:

2 2 11 4 9 7 9

输出样例:

2 2 7

思路

核心的思想就是:

假设$a,b$都为正整数,那么$a<a+b同时b<a+b$

所以思路就出来了,只需要对于这七个数进行排序,然后最大的数减去最小的两个数结果为$N$,其中最小的两个数以及$N$一定是$A,B,C$,然后对于这三个数进行排序,就求出结果了($A<=B<=C$)

代码

import java.util.*;
public class Main
{
    static int[] a = new int[10];
    public static void main(String[] args) {
        Scanner inScanner = new Scanner(System.in);
        for(int i = 1; i <= 7; i ++)
            a[i] = inScanner.nextInt();
        Arrays.sort(a, 1, 8);
        System.out.printf("%d %d %d", a[1], a[2], a[7] - a[1] - a[2]);
        inScanner.close();
    }
}

文章作者: 姜小白
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 姜小白 !
评论
  目录