K12144 最少花费

1 篇文章 0 订阅
1 篇文章 0 订阅

题目描述

卡卡西购买了一批图书后,非常的高兴,爸爸妈妈也表扬了他,称赞他把零用钱用到了最需要使用的地方,但卡卡西发现如果再购买一些文具送给贫困山区的小朋友们就更好了。第二天,卡卡西发动自己的小伙伴拿出他们的零用钱去购买文具,文具以套为单位,按包装销售,每个包装中有数量不等的文具,而且价格也不一样,卡卡西和小伙伴们只想购买一种包装的文具,商店不允许他们将包装拆开,因此卡卡西有可能需要购买超过 n 套文具才行,在商店每种包装的数量都足够的情况下,要买够至少 n 套文具最少需要花费多少钱。

输入格式

输入数据共 m+1 行。第一行有两个用空格分隔的正整数 m,n,m 表示包装的数量,n 表示需要购买的套数。接下来的 m 行,每行有两个用空格分隔的正整数 s1, s2,分别表示每一种包装中文具的数量和整包的价格。

输出格式

一个正整数,表示买够至少 n 套文具的最少花费。

输入输出样列

输入样例1:

3 60

3 5

16 20

31 35

输出样例1:

70

说明

样例说明:

共 3 种包装,需要购买 60 套,如果选择 3 套装,需购买 20 个,总价格 20*5=100,如果选择 16 套装,需购买 4 个,总价格 4*20=80,如果选择 31套装,需购买 2 个,总价格 2*35=70。

数据范围:

1 <= m <=n <= 1000

s1,s2≤10000

#include<iostream>
#include<algorithm>
using namespace std;
int main(){
	int m,n,s1,s2,minn=100000000;
	cin>>m>>n;
	for(int i=1;i<=m;i++){
		cin>>s1>>s2;
		int g=0;
		while(g*s1<n){
			g++;
		}
		minn=min(minn,g*s2);
	}
	cout<<minn;
	return 0;
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值