题解

难度:简单

知识点:数学逻辑

由于钱可以换水果,但是水果不能换钱。
在钱不换水果的情况下:
f代表水果的最大值天数
d/x代表当前的钱维持房租的最大值天数

所以有两种情况:

  • 如果f>=d/x,这个时候因为水果不能换钱,所以d/x就是能维持的最大天数
  • 如果f<d/x,这个时候可以通过钱换水果来增加天数:所以能维持的最大天数为(d+p*f)/(x+p)
#include<iostream>
using namespace std;
int main()
{
    long x, f, d, p;
    cin >> x >> f >> d >> p;
    long day;
    if (d / x > f) day = (d + p * f) / (x + p);
    else day = d / x;
    cout << day << endl;
    return 0;
}