SRM500 Div2 Easy - SRMCards
問題
重複しない数字が書かれたn枚のカードがある
kが書かれたカードを取り除くとk-1, k+1が書かれたカードも消える
最大で何枚のカードを手で取り除けるか
解法
ソートして端から取り除くのが最善
(端以外から取り除くと1回で最大3枚消えるが端から順だと最大2枚しか消えないから)
class SRMCards { public: int maxTurns(vector<int> a) { sort(all(a)); int res = 0; while (!a.empty()) { res++; if (2<=a.size() && a[a.size()-1]==a[a.size()-2]+1) a.pop_back(); a.pop_back(); } return res; } };