https://www.luogu.com.cn/record/184012556
#include<bits/stdc++.h>
using namespace std;
struct coin{
int m;
int v;
double d;
}coins[110]={0};
bool cmp(coin x,coin y)
{
return x.d>y.d;
}
int main()
{
int N,T,leng=0,weight=0;
double ans=0.0;
cin>>N>>T;
for(int i=1;i<=N;i++)
{
cin>>coins[i].m>>coins[i].v;
coins[i].d=1.0*coins[i].v/coins[i].m*1.0;
leng++;
}
sort(coins+1,coins+leng+1,cmp);
for(int i=1;i<=leng;i++)
{
if(T==weight)
{
break;
}
if(coins[i].m+weight<=T)
{
ans+=coins[i].v;
weight+=coins[i].m;
}
if(coins[i].m+weight>T)
{
ans+=coins[i].d*1.0*(T-weight);
weight=T;
}
}
printf("%.2lf",ans);
return 0;
}
求调,不胜感激