题目来·连接](https://blog.csdn.net/qq_36238595/article/details/54916157)
#include<iostream>
#include<algorithm>
#include<string.h>
#include<queue>
using namespace std;
struct py {
int a;
int b;
double c;
} py[10000];
int compare(struct py t1,struct py t2) {
return t1.c>t2.c;
}
int main() {
int n,w;
cin>>n>>w;
for(int i=0; i<n; i++) {
cin>>py[i].a>>py[i].b;
py[i].c=py[i].b*1.0000/py[i].a;
}
int t;
double m;
sort(py,py+n,compare);
int sum=0;
double value=0;
for(int i=0; i<n; i++) {
w-=py[i].a;
value+=py[i].b;
if(w<0) {
value-=py[i].b;
w+=py[i].a;
value+=w*1.000*py[i].b/py[i].a;
break;
}
}
printf("%.1lf\n",value);
return 0;
}