666
2026-09-12 16:43:55
发布于:广东
0阅读
0回复
0点赞
题目描述
商会决定收购农户的粮草。
每一位农户的提供的价格可能相同,而且他们能够提供的粮草数量是有限的。 商会可以从农户中采购到小于或者等于农户所拥有的最大粮草数量。
给出 商会对粮草的需求量,还有每位农户提供的粮草单价和产量。计算采购足够数量的粮草所需的最小花费。
输入格式
第一行: 和 ,分别表示需要的粮草总量和提供粮草的农户个数。
接下来 行,每行两个整数 和 ,表示第 个农户的单价和他拥有的最大粮草量。
输出格式
一个整数,表示采购足够数量的粮草所需的最小花费#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,m;
cin>>n>>m;
int a[m+1],b[m+1];
for(int i=1;i<=n;i++)
cin>>a[i]>>b[i];
for(int i=1;i<=m;i++)
for(int i1=1;i1<=m-i;i1++)
if(a[i1]>a[i1+1])
{
swap(a[i1],a[i1+1]);
swap(b[i1],b[i1+1]);
}
int c=0,i=1;
while(n>0)
{
int x=min(b[i],n);
c+=a[i]*x;
n-=x;
i++;
}
cout<<c;
return 0;
}
这里空空如也

有帮助,赞一个