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; } };