#include <bits/stdc++.h>
using namespace std;
struct treasure{ //连锁数据排序
double m, v, rate;
};
bool cmp(treasure a, treasure b)
{
return a.rate>b.rate;
}
int main()
{
int N, T;
cin >> N >> T;
vector<treasure> treasures(N);
double sum=0;
for(int i=0; i<N; i++)
{
cin >> treasures[i].m >> treasures[i].v;
treasures[i].rate=treasures[i].v/treasures[i].m;
}
sort(treasures.begin(), treasures.end(), cmp);
for(int i=0; i<N; i++)
{
if(T>=treasures[i].m) //尽量不造成出现负数的情况
{
T-=treasures[i].m;
sum+=treasures[i].v;
}
else
{
sum+=treasures[i].rate*T;
T=0;
break;
}
}
printf("%.2lf", sum);
return 0;
}
0 回复
0 转发
0 喜欢
4 阅读



