题解
2024-03-17 20:38:06
发布于:陕西
4阅读
0回复
0点赞
#include<iostream>
#include<algorithm>
#include<stdio.h>
#include<cstdio>
#include<map>
#include<vector>
using namespace std;
pair <int,int> p[23];
long long ans=0;
int main(){
int n,m;
cin>>n>>m;
for(int i=0;i<m;i++){
cin>>p[i].second;//这里要先输后面
cin>>p[i].first;//因为sort排序是先排前面,如果有相同的再排后面
}
sort(p,p+m);
for(int i=m-1;i>=0;i--){
if(p[i].second<=n){//能把这个全拿走
ans+=p[i].first*p[i].second;
n-=p[i].second;
}
else{//不能
ans+=p[i].first*n;
n=0;
break;
}
if(n==0){//不能再多拿一点东西了
break;//跳出循环
}
}
cout<<ans<<endl;
return 0;
}
这里空空如也
有帮助,赞一个