zoj 2109 FatMouse' Trade

来源:互联网 发布:知乎专栏怎么发文章 编辑:程序博客网 时间:2024/06/06 13:01
#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;}}

 
原创粉丝点击