代码如下```cpp
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
int n,t,point=1;
float sum;
struct g
{
int m,v;
float p;
}gold[101];
bool pp(g x,g y)
{
return x.p>y.p;
}
int main()
{
scanf("%d%d",&n,&t);
for(int i=1;i<=n;i++)
{
scanf("%d%d",&gold[i].m,&gold[i].v);
gold[i].p=float(gold[i].v)/float(gold[i].m);
}
sort(gold+1,gold+n,pp);
while(t-gold[point].m>=0)
{
t=t-gold[point].m;
sum+=gold[point].v;
point++;
}
sum+=gold[point].p*t;
printf("%.2f\n",sum);
return 0;
}