魔法草药 题解
2024-08-03 17:18:57
发布于:广东
#include<bits/stdc++.h>
#include<vector>
using namespace std;
struct dada{
int l,r;
double sum;
};
int a,n,ans,m;
vector<dada>v;
bool cmp(dada x,dada y){
return x.sum>y.sum;
}
int main(){
scanf("%d%d",&n,&a);
for(int i=0;i<n;i++){
scanf("%d%d",&m,&ans);
v.push_back({m,ans,ans/(double)m});
}
sort(v.begin(),v.end(),cmp);
int l1=0;
ans=0;
double cnt=0;
while(true){
if(v[l1].l+ans<a){
ans+=v[l1].l;
cnt+=v[l1].r;
l1++;
}else{
cnt+=(a-ans)*v[l1].sum;
break;
}
}
printf("%.2lf",cnt);
return 0;
}
这里空空如也
有帮助,赞一个