Restoring Three Numbers
一、Restoring Three Numbers
题目:
A. Restoring Three Numbers
time limit per test1 second
memory limit per test256 megabytes
inputstandard input
outputstandard output
Polycarp has guessed three positive integers a, b and c. He keeps these numbers in secret, but he writes down four numbers on a board in arbitrary order — their pairwise sums (three numbers) and sum of all three numbers (one number). So, there are four numbers on a board in random order: a+b, a+c, b+c
and a+b+c.
You have to guess three numbers a, b and c using given numbers. Print three guessed integers in any order.
Pay attention that some given numbers a, b and c can be equal (it is also possible that a=b=c
).
Input
The only line of the input contains four positive integers x1,x2,x3,x4 (2≤xi≤1e9)
— numbers written on a board in random order. It is guaranteed that the answer exists for the given number x1,x2,x3,x4.
Output
Print such positive integers a
, b
and c
that four numbers written on a board are values a+b, a+c, b+c
and a+b+c
written in some order. Print a, b and c in any order. If there are several answers, you can print any. It is guaranteed that the answer exists.
Examples
input
3 6 5 4
output
2 1 3
input
40 40 40 60
output
20 20 20
input
201 101 101 200
output
1 100 100
本博客给出本题截图:
题意:给出四个数,这些数分别是a + b,a + c,b + c,a + b + c
的结果,求a b c
AC代码
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int a, b, c, d;
cin >> a >> b >> c >> d;
if (a > b) swap(a, b);
if (b > c) swap(b, c);
if (c > d) swap(c, d);
int x = (a - c + b) / 2;
int y = (a + c - b) / 2;
int z = (b + c - a) / 2;
cout << x << ' ' << y << ' ' << z;
return 0;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
总结
水题,不解释
文章来源: chen-ac.blog.csdn.net,作者:辰chen,版权归原作者所有,如需转载,请联系作者。
原文链接:chen-ac.blog.csdn.net/article/details/117912735
- 点赞
- 收藏
- 关注作者
评论(0)