Content
\(\text{A,B,C}\) 三家每一家都要轮流弄家务活。但上一周,\(\text{C}\) 家旅游去了,所以 \(\text{A}\) 家帮忙做了 \(x\) 个小时的家务,\(\text{B}\) 家帮忙做了 \(y\) 个小时的家务。这周回来后,\(\text{C}\) 家决定支付酬薪 \(z\) 元,求 \(\text{A}\) 家能够分配到的钱数。
数据范围:\(1\leqslant x\leqslant y\leqslant10,1\leqslant z\leqslant1000\)。
Solution
我们看到题面给出的样例,即为 \(x=5,y=4,z=90\) 时的情况:
虽然按照劳动时间分配,确实,\(\text{A}\) 家会分配到 \(90\div(5+4)\times5=50\) 元。
但是真是这样吗?
他们三家总共要平均分配 \(x+y\) 小时的家务,所以每个家庭都应该做的家务时长是 \(\dfrac{x+y}{3}\) 小时。
所以,我们应该按照 \(\text{A,B}\) 两家帮 \(\text{C}\) 家多做的时间来进行分配。
很显然,\(\text{A}\) 家多做的时间是 \(x-\dfrac{x+y}{3}=\dfrac{2x-y}{3}\) 个小时,\(\text{B}\) 家多做的时间是 \(y-\dfrac{x+y}{3}=\dfrac{2y-x}{3}\) 个小时。
所以他们多做的时间比例为 \(\dfrac{2x-y}{3}:\dfrac{2y-x}{3}=2x-y:2y-x\)。
所以 \(\text{A}\) 家的分配比例 \(P\) 为:\(\dfrac{2x-y}{2x-y+2y-x}=\dfrac{2x-y}{x+y}\)。
所以 \(\text{A}\) 家应分配 \(z\times P=\dfrac{z(2x-y)}{x+y}\) 元。
Code
#include <cstdio>
#include <algorithm>
using namespace std;
int main() {
int x, y, z, t;
scanf("%d", &t);
while(t--) {
scanf("%d%d%d", &x, &y, &z);
printf("%d\n", z * (2 * x - y) / (x + y));
}
return 0;
}