#include<iostream>
#include<cstdio>
using namespace std;
struct gold{
int m, v;//重量, 价值
double bi;
}g[105];
int main(){
int n, t;
cin >> n >> t;
for(int i = 0; i < n; i++){
cin >> g[i].m >> g[i].v;
g[i].bi = 1.0 * g[i].v / g[i].m;
}
//排序,从大到小
for(int i = 0; i < n - 1; i++){
for(int j = n - 1; j > i; j--){
if(g[j].bi > g[j-1].bi){
gold tmp = g[j];
g[j] = g[j-1];
g[j-1] = tmp;
}
}
}
int i = 0;
double sum = 0;//sum记录带走的总价值
while(t){
if(t >= g[i].m){
t -= g[i].m;
sum += 1.0 * g[i].v;
i++;
}else{
sum += 1.0 * t * g[i].bi;
t = 0;
}
}
printf("%.2f", sum);
}
跑出来的结果其他都对,第一个数据出了RE