2643:Election
概要
選挙の候補者と政党のリスト、投票結果が与えられる。当選した人の所属する政党を出力する問題。
連想配列が使えれば(使えなくても)実装するだけ。それでも中々スマートに書くのは難しい。
int main(){ int n, i, best=-1; string s1, s2, win; map<string, string> dict; map<string, int> cnt; scanf("%d\n",&n); REP(i,n){ getline(cin,s1); getline(cin,s2); dict[s1] = s2; } scanf("%d\n",&n); REP(i,n){ getline(cin,s1); cnt[s1]++; } EACH(cnt,it){ if(it->second > best){ best = it->second; win = it->first; } else if(it->second == best){ win = ""; } } if(win.empty()) printf("tie\n"); else printf("%s\n", dict[win].c_str()); return 0; }