是不是我贪心思想有误啊......
#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;
}