Official

B - Election Editorial by blackyuki


この問題を解くには for 文などのループに関する知識が必要です。知らなかったという人はこの機会に是非習得してみてください。

候補者は \(N\) 人以下であり、それぞれに対してその候補者に投票した人数を愚直に求めます。

人数を計算した後に投票数最大の候補者を求めるにはいくつか方法が考えられますが、一例として以下の実装例を参照してください。

計算量は \(O(N^2)\) で十分高速です。

実装例 (C++)

#include <bits/stdc++.h>
using namespace std;

int main(){
    int n; cin >> n;
    vector<string> v(n);
    for(int i = 0; i < n; i++) cin >> v[i];
    int ma = 0;
    string res;
    for(int i = 0; i < n; i++){
        string kouho = v[i];
        int cnt = 0;
        for(int j = 0; j < n; j++) if(v[j] == kouho) cnt++;
        if(cnt > ma){
            ma = cnt;
            res = kouho;
        }
    }
    cout << res << endl;
}

posted:
last update: