2023-08-14 10:26:31
发布于:广东
#include<bits/stdc++.h>
using namespace std;
struct metal{
double w,v;
}a[10005];
bool cmp(metal a,metal b){
return (double)a.v/a.w>(double)b.v/b.w;
}
double sum;
int main(){
int n;
double s;
cin >> n >> s;
for (int i=1;i<=n;i++){
cin >> a[i].w >> a[i].v;
}
sort(a+1,a+n+1,cmp);
int num=1;
double sum=0;
while (s&&num<n){
if (s>=a[num].w){
sum+=a[num].v;
s-=a[num].w;
}
else {
sum+=a[num].v/a[num].w*s;
s=0;
}
num++;
}
printf("%.2lf",sum);
return 0;
}
这里空空如也
有帮助,赞一个