SRM 507 Div2 Medium (500) CubeStickers

一つの色につき2面まで塗ることができる.
各色の個数を数え,各色で塗ることができる面の合計が6面以上ならYesを返せば良い.

class CubeStickers {
public:
  string isPossible(vector <string> sticker) {
    int n = sticker.size();
	int i;
    set<string> colorset;
    map<string, int> colors;
    for(i = 0; i < n; i++) {
      colorset.insert(sticker[i]);
      if(colors.find(sticker[i]) == colors.end()){
        colors[sticker[i]] = 1;
      }else colors[sticker[i]]++;
    }
    int count = 0;
    for(set<string>::iterator itr = colorset.begin(); itr != colorset.end(); itr++){
      if(colors[(*itr)] >= 2) count += 2;
      else count++;
    }
    if(count >= 6) return "YES";
    else return "NO";
  }
};