总共有三种买法:
1. 纯单买
2. 纯箱买
有的样例中(如题目所给样例),箱买的单价非常低,所以该方法可行。
3. 混买
由于第二种买法中可能多买的部分不划算,所以采用一部分箱买,一部分单买
代码
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
int main()
{
int c, d, n, m, k;
cin >> c >> d >> n >> m >> k;
int t = n * m - k;
if(k >= n * m)
cout << 0 << endl;
else
{
// 纯单买
int dan = t * d;
// 纯箱买
int boxs = (int)ceil(t * 1.0 / n);
int xiang = boxs * c;
// 混买
int hun = t / n * c + d * (t % n);
cout << min({dan,xiang,hun}) << endl;
}
return 0;
}