Codeforces #228 D2E / D1C:Fox and Card Game

2014-11-24 09:00:42 · 作者: · 浏览: 0

刚开始做的时候直接用贪心法,每次都选最大的卡片,结果WA。

代码:

// Fox and Card Game

#include 
  
   
#include 
   
     #include 
    
      #include 
     
       #include 
      
        #include 
       
         #include 
        
          #include 
         
           #include 
          
            #include 
           
             #include 
            
              #include 
             
               #include 
              
                #include 
               
                 #include
                 #include 
                 
                   #include 
                  
                    #include 
                   
                     #include 
                    
                      #include 
                     
                       #include 
                      
                        #include 
                       
                         using namespace std; typedef pair
                        
                          pii; typedef long long llong; typedef pair
                         
                           pll; #define mkp make_pair int main() { //#define LOCAL // 提交时注释掉 /*******************************************/ #ifdef LOCAL freopen(data.txt, r, stdin); #endif int n; vector 
                          
                            middle; while (cin >> n) { middle.clear(); int cnt1, cnt2; cnt1 = cnt2 = 0; for (int i = 0; i < n; i++) { int s; cin >> s; int t = s / 2; int c; for (int j = 0; j < t; j++) { scanf(%d, &c); cnt1 += c; } if (s & 1) { // odd scanf(%d, &c); middle.push_back(c); } for (int j = 0; j < t; j++) { scanf(%d, &c); cnt2 += c; } } sort(middle.begin(), middle.end(), greater 
                           
                            () ); for (int i = 0; i < middle.size(); i += 2) { cnt1 += middle[i]; if (i + 1 < middle.size()) { cnt2 += middle[i + 1]; } } cout << cnt1 << << cnt2 << endl; } return 0; }