UVA - 11136 Hoax or what

2014-11-24 09:25:44 · 作者: · 浏览: 0

题意:超市每次从票箱选出最大和最小的账单,将(Max-Min)给Max的人,问n天后超市付出多少钱

思路:要省去排序的容器就有set和multiset,为了储存重复的数字,所以采用multiset

#include 
  
   
#include 
   
     #include 
    
      #include 
     
       #include 
      
        using namespace std; int n,t,m; int Min,Max; long long ans; multiset
       
         s; int main(){ while (scanf("%d",&n) != EOF && n){ ans = 0; s.clear(); for (int i = 0; i < n; i++){ scanf("%d",&m); for (int j = 0; j < m; j++){ scanf("%d",&t); s.insert(t); } if (s.size() > 0){ multiset
        
         ::iterator it; it = s.begin(); Min = *it; it = s.end(); it--; Max = *it; s.erase(it); if (s.size() > 0){ it = s.begin(); s.erase(it); } ans += Max - Min; } } printf("%lld\n",ans); } return 0; }