此題由於必須要不使用到小數計算來得解,故先透過底下推算來得解:
\(
\begin{align*}
T_a &= \text{A 家族總共花的時間} \\
T_b &= \text{B 家族總共花的時間} \\
M &= \text{C 家族總共花的錢} \\
\\
T_{total} &= T_a + T_b \\
T_o &= \text{原本一個家族要花的時間} \\
&= \frac{T_{total}}{3} \\
&= \frac{T_a + T_b}{3} \\
\\
T_a’ &= \text{A 家族多花的時間} \\
&= T_a – T_o \\
T_b’ &= \text{B 家族多花的時間} \\
&= T_b – T_o \\
\\
M_a &= \text{C 家族必須付給 A 家族的錢} \\
&= M \times \frac{T_a’}{T_a’ + T_b’} \\
&= M \times \frac{T_a – T_o}{(T_a – T_o) + (T_b – T_o)))} \\
&= M \times \frac{T_a – \frac{T_a+T_b}{3}}{T_a – \frac{T_a+T_b}{3} + T_b – \frac{T_a+T_b}{3}} \\
&= M \times \frac{\frac{2T_a – T_b}{3}}{\frac{T_a+T_b}{3}} \\
&= \frac{M(2T_a – T_b)}{T_a + T_b} \\
\end{align*}
\)
C++(0.000)
/*******************************************************/
/* UVa 12502 Three Families */
/* Author: Maplewing [at] knightzone.studio */
/* Version: 2020/01/22 */
/*******************************************************/
#include <iostream>
#include <cstdio>
using namespace std;
int main(){
int T;
while(scanf("%d", &T) != EOF){
for(int caseNumber = 1 ; caseNumber <= T ; ++caseNumber){
int x, y, z;
scanf("%d%d%d", &x, &y, &z);
printf("%d\n", z * (2*x - y) / (x + y));
}
}
return 0;
}