SRM500 Div2Easy SRMCards

http://community.topcoder.com/stat?c=problem_statement&pm=11341

数字nを1つ選び、1とともに消す。消し終わるまでの最大手数を求める。

連続3数を消すとき、最適は真ん中を選んで消す1手だが、端を選ぶと2手になり、これが最大。なのでソートして端から消していくだけ。

#include <bits/stdc++.h>
using namespace std;

class SRMCards {
public:
   int maxTurns( vector <int> cards ) {
       sort(cards.begin(),cards.end());

       int ret=0;
       while(cards.size()){
           ret++;
           int i=cards[0]; cards.erase(cards.begin());
           if(cards.size()&&cards[0]==i+1){
               cards.erase(cards.begin());
           }
       }
       return ret;
   }
};