#include <bits/stdc++.h>
using namespace std;
struct oil{
int w,v;
double s;
}a[1000005];
bool cmp(oil a,oil b) {
return a.s>b.s;
}
int main(){
freopen("mouse.in","r",stdin);
freopen("mouse.out","w",stdout);
int n,m;
cin>>n>>m;
for(int i=0;i<n;i++) {
cin>>a[i].w>>a[i].v;
a[i].s=(double)a[i].v/a[i].w;
}
sort(a,a+n,cmp);
double vmax=0;
for(int i=0;i<n&&m>0;i++) {
if (a[i].w<=m){
vmax+=a[i].v;
m-=a[i].w;
}else{
vmax+=a[i].s*m;
break;
}
}
cout<<fixed<<setprecision(4)<<vmax;
return 0;
}
在编译器上不会报错,但在提交时会报错
真就离谱