您的位置:首页 > 其它

zoj 2109 FatMouse' Trade

2011-12-25 23:51 330 查看
#include "iostream"
#include "vector"
#include "algorithm"
using namespace std;

struct Info//存储输入食物的信息
{
double JavaBean;
double CatFood;
double rate;
};

bool mycomp (Info a, Info b)//按照它的比例的大小而排序!比率小的在前!
{
return a.rate < b.rate;
}

int main()
{
int food, num;
while (cin >> food >> num && food != -1 && num != -1)
{
Info *a = new Info[num];
vector<Info> v;
double ans = 0;

for (int i = 0; i < num; i++)
{
cin >> a[i].JavaBean  >> a[i].CatFood;
a[i].rate = a[i].CatFood / a[i].JavaBean;
v.push_back(a[i]);
}
sort(v.begin(), v.end(), mycomp);
for (int i = 0; i < num; i++)
{
if (food > v[i].CatFood)//如果catfood的食物足够的话,就继续兑换!
{
ans += v[i].JavaBean;
food -= v[i].CatFood;
}
else//如果食物不够的话,就按比率来计算!
{
ans += food * v[i].JavaBean / v[i].CatFood;
break;
}
}

cout.setf(ios_base::fixed);
cout.precision(3);
cout << ans << endl;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: