解いた問題

5/28/2012

SRM408 Div2 Medium

500

読むだけ



  1. class OlympicCandles {  
  2. public:  
  3.   int numberOfNights(vector <int> C)  
  4.   {  
  5.     int night = 1;  
  6.   
  7.     while (true) {  
  8.       sort(C.begin(), C.end());  
  9.       reverse(C.begin(), C.end());  
  10.       int cnt = 0;  
  11.       for (int i = 0; i < (int)min((int)C.size(), night); ++i) {  
  12.         if (0 < C[i]) ++cnt;  
  13.         --C[i];  
  14.       }  
  15.       if (cnt == night) ++night;  
  16.       else break;  
  17.     }  
  18.   
  19.     return night - 1;  
  20.   }  
  21. };