买铅笔 蓝桥杯

本文介绍了一个蓝桥杯比赛中的问题,P老师需要购买一定数量的铅笔作为礼物,铅笔有三种包装,每种包装的铅笔数量和价格不同。P老师希望购买同一种包装并使总花费最少。文章给出了输入输出描述,以及示例解释如何计算最小花费。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

链接:https://ac.nowcoder.com/acm/contest/50099/1024

来源:牛客网

题目描述

P老师需要去商店买n支铅笔作为小朋友们参加NOIP的礼物。她发现商店一共有 3 种包装的铅笔,不同包装内的铅笔数量有可能不同,价格也有可能不同。为了公平起见,P老师决定只买同一种包装的铅笔。

商店不允许将铅笔的包装拆开,因此P老师可能需要购买超过 n 支铅笔才够给小朋友们发礼物。

现在P老师想知道,在商店每种包装的数量都足够的情况下,要买够至少 n 支铅笔最少需要花费多少钱。

输入描述:

第一行包含一个正整数 n ,表示需要的铅笔数量。

接下来三行,每行用 2 个正整数描述一种包装的铅笔:其中第 1 个整数表示这种 包装内铅笔的数量,第 2 个整数表示这种包装的价格。

保证所有的 7 个数都是不超过 10000 的正整数。

输出描述:

1 个整数,表示P老师最少需要花费的钱。

示例1

输入

复制

57

2 2

50 30

30 27

输出

复制

54

说明

P老师需要购买至少 57 支铅笔。

如果她选择购买第一种包装,那么她需要购买 29 份,共计 2 x 29 = 58 支,需要花 费的钱为 2 x 29 = 58 。

实际上,P老师会选择购买第三种包装,这样需要买 2 份。虽然最后买到的铅笔数量更多了,为 30 x 2 = 60 支,但花费却减少为 27 x 2 = 54 ,比第一种少。

对于第二种包装,虽然每支铅笔的价格是最低的,但要够发必须买 2 份,实际的花费达到了 30 x 2 = 60 ,因此P老师也不会选择。

所以最后输出的答案是 54 。

示例2

输入

复制

9998

128 233

128 2333

128 666

输出

复制

18407

示例3

输入

复制

9999

101 1111

1 9999

1111 9999

输出

复制

89991

/*
设包数为h
*/
#include <bits/stdc++.h>
using namespace std;
int main(){
    int n,a,b,sum=0;
    int res=2e9;
    cin>>n;
    while(cin>>a>>b){
        for(int i=0;i<=10000;i++){
            if(i*a>=n){
                sum=i*b;
                break;
            } else continue;   
           
         }
         res=min(sum,res);
    }
        
        cout<<res<<endl;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值