粮草|贪心
2026-04-04 20:05:10
发布于:河北
3阅读
0回复
0点赞
废话少说,上代码
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
struct Farmer{
int price;
int amount;
};
bool compare(const Farmer& a,const Farmer& b){
return a.price<b.price;
}
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
int n=0,m=0;
cin>>n>>m;
vector<Farmer> farmers(m);
for(int i=0;i<m;++i)
cin>>farmers[i].price>>farmers[i].amount;
// 按单价从小到大排序
sort(farmers.begin(),farmers.end(),compare);
long long total_cost=0;
int remaining=n;
for(int i=0;i<m&&remaining>0;++i) {
if(farmers[i].amount>=remaining){
// 当前农户的粮草足够满足剩余需求
total_cost+=(long long)remaining*farmers[i].price;
remaining=0;
}else{
// 购买当前农户的所有粮草
total_cost+=(long long)farmers[i].amount*farmers[i].price;
remaining-=farmers[i].amount;
}
}
cout<<total_cost;
return 0;
}
这里空空如也








有帮助,赞一个