#include<bits/stdc++.h>
using namespace std;
int n;
double a[101],t,m[101],v[101];
int main()
{
cin>>n>>t;
for(int i=1;i<=n;i++)cin>>m[i]>>v[i],a[i]=v[i]/m[i];
for(int i=1;i<n;i++)
for(int j=1;j<n;j++)
if(a[j]>a[j+1])
{
swap(a[j],a[j+1]);
swap(m[j],m[j+1]);
swap(v[j],v[j+1]);
}
int sum=0,i=n+1;
while(i--)
{
if(t>=m[i])
{
sum+=v[i];
t-=m[i];
}
else
{
printf("%.2f",sum+t*a[i]);
return 0;
}
}
printf("%.2f",sum+t*a[i]);
return 0;
}
倒数第三行
sum+t*a[i]
为什么要加t*a[i]
不加WA第一个点???