#include<bits/stdc++.h>
using namespace std;
int n,t,maxx;
double ans=0.00;
struct jin{
double m;
double w;
double p;
bool k;
}a[110];
int find(){
maxx = n+2;
for(int i = 1;i<=n;i++){
if(a[i].p >= a[maxx].p && a[i].k == false){
maxx = i;
}
}
a[maxx].k = true;
return maxx;
}
int main(){
cin>>n>>t;
if(n==0 || t==0){
cout<<0;
return 0;
}
for(int i = 1;i<=n;i++){
cin>>a[i].m>>a[i].w;
a[i].p = a[i].w/a[i].m;
}
while(t>=0){
int i = find();
if(a[i].m < t) {
ans+=a[i].w;
t -= a[i].m;
}
else {
ans+=t*a[i].p;
cout<<fixed<<setprecision(2)<<ans;
return 0;
}
}
return 0;
}
代码写的稀烂 望各位大佬轻喷