题目大意
有n组数字序列,每次从一组序列中取出最大值,最小值,累加最大值与最小值的差,同时该组的剩下的数归入下一组序列,问最后累加和
思路
使用multiset来存放数字序列,从中取出最大值与最小值,累加其之差
代码如下:
usingnamespacestd; voidfastio() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); } intmain() { fastio(); ifstreamfin("f:\\OJ\\uva_in.txt"); streambuf*back=cin.rdbuf(fin.rdbuf()); intn; while ((cin>>n) &&n) { unsignedlonglongres=0; multiset<int>bills; for (inti=0; i<n; i++) { intk; cin>>k; for (intj=0; j<k; j++) { inttmp; cin>>tmp; bills.insert(tmp); } autobegin=bills.begin(); autoend=bills.end(); --end; res+=*end-*begin; bills.erase(begin); bills.erase(end); } cout<<res<<endl; } cin.rdbuf(back); return0; }