采购奖品

采购奖品

目描述

马上又到了一年一度的新年联欢,小明作为班里的班长,负责组织策划新年联欢活动,他决定采购一些奖品奖励积极参与每个活动项目的同学。为了激励更多的人参与活动,需要采购的奖品数目越多越好。班费中可支出的钱数为m元,现给定商店中n种可作为奖品的物品的价格和库存数量,怎样才能购得最多的物品数?


输入格式

输入文件共有n+1行:

第一行包含两个正整数m(1<m≤10000)和n(1≤n≤100),表示可支出的费用为m元和可供购买的物品有n种。

接下来的n行,每行包含两个数(由一个空格分隔),分别表示一种物品的单价ai和库存数量bi。其中,ai和bi均不会超过10000。


输出格式

输出文件仅包含一个整数,表示最多可以购买的物品数量。


输入样例 1 

500 6
100 3
20 15
50 10
35 5
5 6
60 2
输出样例 1

25
提示

样例说明:价格为5的可以买6个,价格为20的可以买15个,价格为35的可以买4个,总共买了25件奖品。
C++ Code:
#include<iostream>
#include<cstring>
using namespace std;
int a[10001],b[10001];
int main()
{
	int k,n,i,j,v=0;
	cin>>k>>n;
	for(i=1;i<=n;i++)
		cin>>a[i]>>b[i];
	for(i=1;i<n;i++)
	{
		for(j=i+1;j<=n;j++)
		{
			if(a[i]>a[j])
			{
				swap(a[i],a[j]);
				swap(b[i],b[j]);
			}
		}
	}
	int sum=0;
	for(i=1;i<=n;i++)
	{
		for(j=1;j<=b[i];j++)
		{
			sum+=a[i];
			if(sum>=k)
				break;
			v++;
		}
		if(sum>=k)
			break;
	}
	cout<<v;
	return 0;
}
发布了26 篇原创文章 · 获赞 16 · 访问量 1102

猜你喜欢

转载自blog.csdn.net/user_qym/article/details/104083504