您的位置:首页 > 其它

hdu 1009 FatMouse' Trade

2013-05-10 21:21 288 查看
因为先没有判断i与n的大小,一直错着,郁闷的不行,蛋都碎了……

#include<iostream>
#include<algorithm>
#include<iomanip>
using namespace std;
struct node{
int java;
int food;
double agv;
};
bool cmp(node a,node b)
{
return a.agv>b.agv;
}
int main()
{
int i;
int m,n;
node fat[1005];
while(cin>>m>>n&&(m+n)!=-2)
{
for(i=0;i<n;i++)
{
cin>>fat[i].java>>fat[i].food;
fat[i].agv=(double)fat[i].java/fat[i].food;
}
sort(fat,fat+n,cmp);
i=0;
double sum=0.0;
/* for(i=0;i<n&&m>0;i++)
{
if(m>=fat[i].food)
{
sum+=fat[i].java;
m-=fat[i].food;
}
else {
sum+=m*fat[i].agv;
m=0;
}
}*/
while(m>0&&i<n) //先要判断i与n的大小
{
if(m>=fat[i].food)
{
sum+=fat[i].java;
m-=fat[i].food;
}
else {
sum+=m*fat[i].agv;
break;
}
i++;
// if(i==n) break;
}
cout<<fixed<<setprecision(3)<<sum<<endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: