w和f传不进来
#include<bits/stdc++.h>
using namespace std;
struct coin{
double w;
double p;
double per;
bool operator < (coin rhs){
return per > rhs.per;
}
};
int n;
double ans,t;
coin a[105];
int main(){
scanf("%d%f",&n,&t);
for(int i=1;i<=n;i++){
double w,p,per;
scanf("%f%f",&w,&p);
a[i].per=p/w;
a[i].p=p;
a[i].w=w;
}
sort(a+1,a+n+1);
for(int i=1;i<=n;i++){
if(t>=a[i].p){
t-=a[i].p;
ans+=a[i].p;
}
else{
ans+=a[i].per*t;
t=0;
}
}
printf("%.2f",ans);
return 0;
} ```