#include<bits/stdc++.h>
using namespace std;
int n,i,j;
bool ch;
double sum=0.0,t,k;
struct gold
{
int m;
int v;
double vm;
}obj[105];
int main()
{
scanf("%d %lf",&n,&t);
for(i=1;i<=n;i++)
{
scanf("%d %d",&obj[i].m,&obj[i].v);
obj[i].vm=obj[i].v/obj[i].m;
}
for(i=1;i<n;i++)
{
ch=true;
for(j=1;j<n;j++)
{
if(obj[j+1].vm>obj[i].vm)
{
swap(obj[j],obj[j+1]);
ch=false;
}
}
if(ch)break;
}
i=1;
j=0;
while(j<t)
{
if(obj[i].m<1)i++;
if(obj[i].m>0)
{
j++;
sum+=obj[i].vm;
obj[i].m--;
}
}
printf("%0.2lf",sum);
return 0;
}
样例能过,为啥错呢?