题解:P1909 [NOIP2016 普及组] 买铅笔

· · 题解

思路

由于只能买同一种包装的铅笔,所以可以直接输入 3 种包装的铅笔数和价格,然后将所需的钱数和之前的钱数的最小值作比较,求出最小值。这里还需要特判一下,因为一个包装内的铅笔数可能大于需要的铅笔数量。

代码

#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
int n,mi=INT_MAX,a,b;
int main(){
    cin>>n;
    for(int i=0;i<3;i++){
        cin>>a>>b;
        if(n%a==0||a%n==0) mi=min(mi,n/a*b);
        else mi=min(mi,n/a*b+b);
    }
    cout<<mi;
}