是不是我贪心思想有误啊......
#include<bits/stdc++.h>
using namespace std;
int n,t,w;
double ans;
struct abc{
    int m,v;
}a[105];
bool cmp(abc a1,abc a2){return a1.v>a2.v;}
int main()
{
    cin>>n>>t;
    for(int i=0;i<n;i++)
    {
        cin>>a[i].m>>a[i].v;
    }
    sort(a,a+n,cmp);
    reverse(a,a+n);
    for(int i=0;i<n;i++)
    {
        if(w+a[i].m<=t)
        {
            ans+=a[i].v;
            w+=a[i].m;
        }
        else
        {
            ans+=((t-w)/a[i].m)*a[i].v;
            break;
        }
    }
    cout<<fixed<<setprecision(2)<<ans;
}