A. Restoring Three Numbers
题意:
给出 a+b,a+c,b+c,a+b+c 三个数,求a,b,c;
思路:
不妨设 a < b < c,那么 a+b < a+c < b+c < a+b+c;
假设 a+b = x , a+c = y , b+c = z , a+b+c = k;
那么 a = x-b , c = z-b , 带入 a+b+c = k中得
(x-b)+b+(z-b) = k;
x+z-b=k ⇔b=x+z-k
a=x-b;
c=y-b;
AC代码:
1 #include<bits/stdc++.h> 2 using namespace std; 3 4 int a[5]; 5 int main() 6 { 7 // freopen("C:\\Users\\hyacinthLJP\\Desktop\\in&&out\\contest","r",stdin); 8 for(int i=1;i <= 4;++i) 9 scanf("%d",a+i); 10 sort(a+1,a+5); 11 int aa=a[4]-a[3]; 12 int b=a[1]+a[3]-a[4]; 13 int c=a[4]-a[1]; 14 printf("%d %d %d\n",aa,b,c); 15 }