#include<iostream>
#include<cstdio>
#include<vector>
#include<algorithm>
using namespace std;
struct node
{
int m,v;
double x;
};
bool cmp(node &a,node &b)
{
if(a.x>b.x)
return 1;
return 0;
}
vector<node> vec;
int main()
{
int N,T,m,v;
double x;
cin>>N>>T;
for(int i=0;i<N;i++)
{
cin>>m>>v;
x=(double)v/(double)m;
vec.push_back({m,v,x});
}
double sum=0.0;
sort(vec.begin(),vec.end(),cmp);
for(int i=0;i<N;i++)
{
if(T==0)
break;
if(T>=vec[i].m)
{
sum+=vec[i].v;
T-=vec[i].m;
}
else{
sum+=T*vec[i].x;
T=0;
}
}
printf("%.2lf",sum);
}
0 回复
0 转发
1 喜欢
1 阅读



