您的位置:首页 > 其它

zoj2109fatmouse

2016-03-17 16:24 393 查看
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
struct trade{
int java;//库房的javabean
int food;//换取库房的javabean需要的猫粮
double ratio;//用猫粮换取javabean的性价比
};
struct trade a[100];
int cmp(trade a,trade b)
{
return a.ratio>b.ratio?1:0;
}
int main()
{
int m,n,i;//m是food的总量,n是交易的个数
double bean;
while(cin>>m>>n&&m!=-1&&n!=-1)
{
bean=0;
for(i=0;i<n;i++)	//	原来是i=1~~i<=n但是结果不对,但是从i=0~~i<n就对了,不明白什么原因!!
{
cin>>a[i].java>>a[i].food;
a[i].ratio=1.0*a[i].java/a[i].food;
}
sort(a,a+n+1,cmp);//按照性价比从大到小排序
for(i=0;i<n&&m>=a[i].food;i++)
{
m-=a[i].food;
bean+=a[i].java;
}
if(i<n)	//说明是猫粮不够了
bean+=m*a[i].ratio;
printf("%0.3lf\n",bean);

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: