P1909 Solution

· · 题解

题目传送门

抢个题解求过啊!

由于我们需要买至少 n 只笔,设每种包装内有 a 支铅笔,这种包装的价格为 b 元,所以我们一种包装的铅笔需要买 \lceil\frac{n}{a}\rceil 支,因为是至少买 n 只所以加一个向上取整,然后把这个数量乘上 b 就是我们一种铅笔的总价钱,对于三种铅笔分别计算然后取 \min 就可以了。

#include <iostream>
#include <cmath>
#include <algorithm>
using namespace std;

int main()
{
    int n, a1, b1, a2, b2, a3, b3;
    cin >> n >> a1 >> b1 >> a2 >> b2 >> a3 >> b3;
    int a = ceil(1.0 * n / a1) * b1;
    int b = ceil(1.0 * n / a2) * b2;
    int c = ceil(1.0 * n / a3) * b3;
    cout << min({a, b, c});
    return 0;
}