死活改不过来了
#include<bits/stdc++.h>
using namespace std;
double t; int A,n;
struct co{
double m,v;
}a[105];
bool cmp(co x,co y)
{
return x.v*y.m>y.v*x.m;
}
int main(){
float ans=0;
cin >> n >> t;
int c = t;
for(int i=0;i<n;i++) cin >> a[i].m >> a[i].v;
sort(a,a+n,cmp);
for(int i=0;i<n;i++){
A=i;
if(a[i].m>c) break;
c-=a[i].m;
ans +=a[i].v;
}
if(A<n) ans+=a[A].v*c*1.0/(a[A].m*1.0); //余下重量存无法完整存下的最高价值的分割
printf("%.2lf",ans);
return 0;
}