题目:
代码:
#include<iostream>
#include<algorithm>
using namespace std;
struct coin{
int m,v;
}a[110];
bool cmp(coin x,coin y){
return x.v*y.m>x.m*y.v;
}
int main(){
int N,T,i; scanf("%d%d",&N,&T);
for(i=0;i<N;i++)
{
scanf("%d%d",&a[i].m,&a[i].v);
}
sort(a,a+N,cmp);
int now=T;
float ans=0;
for(i=0;i<N;i++)
{
if(now<a[i].m) break;
now-=a[i].m;
ans+=a[i].v;
}
if(i<N) ans+=1.0*now*(1.0*a[i].v/a[i].m);
printf("%.2f",ans);
return 0;
}
运行结果: