只有20分
(第一个测试点)
code(C++):
#include<bits/stdc++.h>
using namespace std;
const int N=101;
struct gold
{
double m,k,v;
};
int t,n;
gold g[N];
double sum;
bool cmp(gold,gold);
int main()
{
cin>>n>>t;
for(int i=1;i<=n;i++)
{
cin>>g[i].m>>g[i].v;
g[i].k=(double)(g[i].v/g[i].m);
}
sort(g+1,g+n+1,cmp);
for(int i=1;i<=n;i++)
{
if(t==0)
break;
if(t>=g[i].m)
{
t-=g[i].m;
sum+=g[i].v;
}
else
{
t=0;
sum+=(double)(g[i].k*t);
}
}
printf("%.2lf",sum);
return 0;
}
bool cmp(gold g1,gold g2)
{
return g1.v*g2.m>g2.v*g1.m;
}
(样例没过) (-_-||)