#include<bits/stdc++.h>
#define ll long long
#define dd double
#define RT 114514
using namespace std;
ll kg[1000005],mn[1000005];
dd kmn[1000005];
struct sab
{
ll kg;
ll mn;
dd kmn;
}s[1000005];
bool cmp(sab x,sab y)
{
return x.kmn>y.kmn;
}
int main()
{
dd ans=0;
ll n,t,nkg=0;
cin>>n>>t;
for(ll i=0;i<n;i++)
{
cin>>s[i].kg>>s[i].mn;
s[i].kmn=(double)s[i].mn/(double)s[i].kg;
}
sort(s,s+n,cmp);
for(ll i=0;;i++)
{
if(nkg==t) break;
if(s[i].kg+nkg<=t)
{
ans+=(double)s[i].mn;
nkg+=s[i].kg;
}
else
{
ans+=(t-nkg)*s[i].kmn;
printf("%.2lf",ans);
return 0;
}
}
return 0;
}
第一个点紫了,想问问到底是啥原因