Yukicoder079 過小評価ダメ・ゼッタイ

問題概要

競技プログラミングの出題サイト yurucoder では問題ごとにレベルが設定されています。

問題のレベルはユーザーからアンケートを取り以下のルールで決められます。
$N$人のユーザーは問題のレベルをそれぞれ $L_i$ として評価する。 $(1≤i≤N)$
多数決を取り、最もユーザーからの回答が多いレベルをその問題のレベルとする。
最も多い回答を得たものが複数ある場合は、よりレベルの高い方を採用する。

このルールに従い、ユーザーから得た評価から問題のレベルを求めてください。

$N\leqq10^5$、$L_i\leqq6$

yukicoder079

解法

PIIのmax.minでidも管理すると楽。

計算量:$O(N)$

ソース

    #include <bits/stdc++.h>
    using namespace std;
    
    using VS = vector<string>;    using LL = long long;
    using VI = vector<int>;       using VVI = vector<VI>;
    using PII = pair<int, int>;   using PLL = pair<LL, LL>;
    #define FOR(i, s, e) for (int(i) = (s); (i) < (e); (i)++)
    
    int main() {
        cin.tie(0);
        ios_base::sync_with_stdio(false);
    
        int N; cin >> N;
        VI L(7, 0);
        FOR(i, 0, N) {
            int a; cin >> a;
            L[a]++;
        }
        PII Max = PII(-1, -1);
        FOR(i, 1, 7) {
            Max = max(Max, PII(L[i], i));
        }
        int ans = Max.second;
        cout << ans << "\n";
    
        return 0;
    }
Share Comments
̃Gg[͂ĂȃubN}[Nɒlj
comments powered by Disqus