1.3.1 Mixing Milk(注意sort()函数 )

来源:互联网 发布:php 用户行为记录 编辑:程序博客网 时间:2024/06/15 09:16

               因为一个sort(),错了好几次, 真郁闷啊……

#include<iostream>#include<fstream>#include<algorithm>using namespace std;struct People{int price;int count;}people[5005];bool Cmp(People a, People b){return a.price<b.price;}int main(){ifstream fin("milk.in");      ofstream fout("milk.out");  int count, num, total=0, i;fin>>count>>num;for(i=0; i<num; i++)   fin>>people[i].price>>people[i].count;    //郁闷, sort()中的Cmp在相等的时候不能返回true, 否则会异常退出程序     //我因为:return  return a.price<=b.price;中的等号WR了好几次; //开始不知什么原因, 于是调试了一下, 结果显示 “Expression : invalid operator < ”//于是baidu了一下, 搜到了这篇 ……于是乎恍然…… 点击打开链接    sort(people, people+num, Cmp);   if( count>0 ){     //i<num必须加上, 否则数组可能会越界for(i=0; i<num && count-people[i].count>=0; i++){count-=people[i].count;total+=people[i].price*people[i].count;}if( count>0 )//这个if必须加上,虽然注释掉我也提交上了……      total+=count*people[i].price;}fout<<total<<endl;}

原创粉丝点击