2018网易校招内推笔试-独立的小易(python)

来源:互联网 发布:淘宝联盟高佣金通过 编辑:程序博客网 时间:2024/05/21 09:17

题目描述:

小易为了向他的父母表现他已经长大独立了,他决定搬出去自己居住一段时间。一个人生活增加了许多花费: 小易每天必须吃一个水果并且需要每天支付x元的房屋租金。当前小易手中已经有f个水果和d元钱,小易也能去商店购买一些水果,商店每个水果售卖p元。小易为了表现他独立生活的能力,希望能独立生活的时间越长越好,小易希望你来帮他计算一下他最多能独立生活多少天。

输入描述:

输入包括一行,四个整数x, f, d, p(1 ≤ x,f,d,p ≤ 2 * 10^9),以空格分割

输出描述:

输出一个整数, 表示小易最多能独立生活多少天。

示例1
输入

3 5 100 10

输出

11

解题思路:

这道题分类讨论就可以:
1、水果比较多,钱比较少,导致水果还没吃完,钱已经付完房钱了。这种情况,只能过d/x
2、钱足够多,多到可以吃完水果,要开始买水果。这里有分,水果比较贵,一个都买不起,则为生活f天;水果买的起,这可以过n天,n满足

n*x+(n-f)*p<=d  -> max n=(d+f*p)/(x+p)

代码如下:

mport sysline=sys.stdin.readline().strip()def get_n(s):    s_list=s.split()    x=int(s_list[0])    f=int(s_list[1])    d=int(s_list[2])    p=int(s_list[3])    if d<=f*x:        return d/x    if d>f*x:        if f*x+p>d:            return f        else:            return (d+f*p)/(x+p)print get_n(line)