p2240 20分
#include <bits/stdc++.h>
using namespace std;
struct node{
double value;
double weight;
}gold[114514];
int num;double t;
double cmp(node x,node y){
return x.value>y.value;
}
int main(){
cin>>num>>t;
for(int i=1;i<=num;i++){
double v;
cin>>gold[i].weight>>v;
gold[i].value=v/gold[i].weight;
//cout<<gold[i].value<<" ";
}
sort(gold+1,gold+num+1,cmp);
double w=0;int id=1;
double money=0;
for(int i=1;i<=num&&w+gold[i].weight<=t;i++){
w+=gold[i].weight;
money+=gold[i].value*gold[i].weight;
id++;
}
if(w<t) money+=gold[id].value*(t-gold[id].weight)*1.0;
printf("%.2lf",money);
return 0;
}