1319: 【基础】需要租多少只船最经济?

内存限制:16 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:26 解决:14

题目描述

全班共有100人去公园划船,其中男生m人。公园里有大船、中船和小船共租用,三种船最多可坐的人数和租金价格如下表所示。现要求男生和女生要坐到不同的船上,请问最便宜的租船方案是如何坐船,请求出大船、中船、小船各需租用多少只,才能按照最便宜的方案装下100人?(6.2.28

船的型号

船的载客量

半天的出租金额

大船

6

100

中船

3

75

小船

2

60

输入

一个整数m代表男生的人数

输出

三个整数,分别代表需要租用大船的数量、中船的数量以及小船的数量,用空格隔开3个整数

样例输入 复制

64

样例输出 复制

16 0 2

提示

m=int(input())  #男生人数
n=100-m  #女生人数
m1=m//6  #所有男生首先租6人船
n1=n//6  #所有女生首先租6人船
if (m-m1*6)%4==0:  #如果剩余的人数是4,则全部租2人船,这比3人船+2人船的组合租金更低
    m2=0
    m3=(m-m1*6)//2
else:  #如果剩余的人数不是4,则先租3人船,然后再租2人船
    m2=(m-m1*6)//3
    m3=(m-m1*6-m2*3)//2
if (n-n1*6)%4==0:  #女生是同样的逻辑
    n2=0
    n3=(n-n1*6)//2
else:
    n2=(n-n1*6)//3
    n3=(n-n1*6-n2*3)//2
if m-m1*6-m2*3-m3*2>0:  #如果剩下1人,则必须再租1艘2人船
    m3+=1
if n-n1*6-n2*3-n3*2>0:
    n3+=1
ans1=m1+n1
ans2=m2+n2
ans3=m3+n3
print('%d %d %d'%(ans1,ans2,ans3))