Official

A - Majority Editorial by KoD


AtCoder をはじめたばかりで何をしたらよいか分からない方は、まずは practice contest の問題 A「Welcome to AtCoder」を解いてみてください。基本的な入出力の方法が載っています。
また、プログラミングコンテストの問題に慣れていない方は、AtCoder Beginners Selection の問題をいくつか解いてみることをおすすめします。


\(S_i = \) For であるものの個数を \(f\) として、\(f \gt \frac{N}{2}\) なら Yes、そうでないなら No となります。よって、\(f\) を求めることができればよいです。

変数 count0 で初期化し、「文字列を受け取り、それと For が等しいならば count の値を 1 増やす」という処理を行うと、処理が終わった後の count の値が求めたい \(f\) の値になっています。「\(N\) 回繰り返す」という処理は for 文を用いて実装することができます。

詳しくは以下の実装例を参考にしてください。なお、これらの実装例では \(f\)\(\frac{N}{2}\) の小数点以下を切り捨てた値を比較していることに注意してください。

実装例 (C++)

#include <iostream>
#include <string>
using namespace std;

int main() {
    int n;
    cin >> n;
    int count = 0;
    for (int i = 0; i < n; ++i) {
        string s;
        cin >> s;
        if (s == "For") {
            count += 1;
        }
    }
    if (count > n / 2) {
        cout << "Yes\n";
    } else {
        cout << "No\n";
    }
    return 0;
}

実装例 (Python)

n = int(input())
count = 0
for _ in range(n):
    if input() == "For":
        count += 1
print("Yes" if count > n // 2 else "No")

posted:
last update: