首页 > 代码库 > UVa 12502 - Three Families

UVa 12502 - Three Families

题目:有三个家庭ABC清理一个花园,每个家庭清理的速度相同,C家庭出去度假,只有AB两个家庭清理;

            A家庭清理x小时,B家庭清理y小时,C家庭回来支付了z元,问A家庭得到多少钱。

分析:简单题。看一下样例,把花园分成3份,一共用了9个小时清理,每个家庭的前3个小时是自己的;

            所以,A家庭清理了C家庭部分2小时,B家庭清理了C家庭部分1小时,所以A家庭得60美元。

            设总量为3a个小时,C家庭部分B工作了b小时,则有如下方程:

            则设(2a-b)/ (a+b)= k = x / y 得 (a-b)/ a = (2k-1)/ (k+1)= (2m-n)/ (n+m)。

说明:冲进前600了( ⊙ o ⊙ )。

#include <algorithm>
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <cstdio>
#include <cmath>

using namespace std;

int main()
{
	int n,x,y,z;
	while (~scanf("%d",&n)) 
	for (int i = 0 ; i < n ; ++ i) {
		scanf("%d%d%d",&x,&y,&z);
		printf("%d\n",z*(2*x-y)/(x+y));
	}
    return 0;
}


UVa 12502 - Three Families