一个公司使用两台打印机打印一份N页的文件。打印机的工作速度似乎不同。一个在X秒内生成一个页面,另一个在Y秒内生成。所以现在公司创始人对他们能用两台打印机打印整个文件的最短时间很好奇。输入数据在第一行中包含测试用例的数量。然后测试用例将跟随其后,每一个都在单独的行中。每个测试用例包含三个整数值——X Y N,其中N不会超过1,000
思路: 两台打印机同一时间开始打印,所以所需的时间并非之和,而是两台打印机所花时间中的最大。所以假设甲打印机打印一页花X秒,需要打印 A 页,所需时间 X*A,那么乙打印机打印一页花Y秒,需要打印 N-A 页,所需时间 Y*( N-A)为了不造成浪费,在一台打印机打印结束以后,另一台打印机所剩时间不能超过前者的时间,即
X * A - Y * ( N - A )< Y
解不等式即可得到结果
A < ( Y * ( N + 1 ))/ ( X + Y )
代码如下
def main ():
total = eval(input("input data :"))
answer = []
for i in range(total):
s = input()
items = s.split()
lst = [eval(x) for x in items]
print1time = lst[0]
print2time = lst[1]
totlapage = lst[2]
print1page = (print2time*(totlapage+1)) // (print2time + print1time)
totlatimes = print1page * print1time if print1page * print1time > (totlapage - print1page) * print2time \
else (totlapage - print1page) * print2time
answer.append(totlatimes)
for x in answer:
print(x,end=" ")
main()