两个打印时间不同的打印机打印N页文件所需最小时间

一个公司使用两台打印机打印一份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()

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值