Div 2 250 - RabbitVoting

問題

参加者と投票先のリストが与えられる.本人投票が無効であるとき,最多得票を得たのは誰か?ただし最多得票者が複数いる場合は""を返すこと.

考え方

言われた通りに票数をカウントして,最多得票者を求めればいいだけ.名前(文字列)と票数(数値)との対応付けをする方法さえ分かっていれば問題ないはず.

コード

#include <map>
#include <vector>
#include <string>
using namespace std;
class RabbitVoting
{
public:
  string getWinner(vector <string> names, vector <string> votes)
  {
    map<string,int> vote;
    for( int i = 0 ; i < names.size() ; ++i )
      if( names[i] != votes[i] ) vote[votes[i]]++;
    string win = "";
    int mx = -1;
    for( map<string,int>::iterator it = vote.begin() ; it != vote.end() ; ++it ) {
      if( it->second < mx ) continue;
      if( it->second == mx ) win = "";
      else {
        mx = it->second;
        win = it->first;
      }
    }
    return win;
  }
};