本文主要是介绍1.3.1 Mixing Milk(注意sort()函数 ),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
因为一个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;
}
这篇关于1.3.1 Mixing Milk(注意sort()函数 )的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!