Official

A - AtCoder Quiz 2 Editorial by KoD


if / else 文を用いて実装することができます。

実装例 (C++):

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

int main() {
    int X;
    cin >> X;
    if (X < 40) {
        cout << 40 - X << '\n';
    } else if (X < 70) {
        cout << 70 - X << '\n';
    } else if (X < 90) {
        cout << 90 - X << '\n';
    } else {
        cout << "expert\n";
    }
}

実装例 (Python) :

X = int(input())
if X < 40:
    print(40 - X)
elif X < 70:
    print(70 - X)
elif X < 90:
    print(90 - X)
else:
    print("expert")

なお、ループを用いて簡潔に実装することもできます。 \(40, 70, 90\) のうち \(X\) より大きい最小のものを見つけ(存在しない場合は expert と出力)、その値から \(X\) を引くという処理を行っています。

実装例 (C++):

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

int main() {
    int X;
    cin >> X;
    vector<int> A = {40, 70, 90};
    for (int i = 0; i < 3; ++i) {
        if (A[i] > X) {
            cout << A[i] - X << '\n';
            return 0;
        }
    }
    cout << "expert\n";
}

以下に載せるコードは発展的な内容を含みます (C++) :

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

int main() {
    int X;
    cin >> X;
    vector<int> A = {40, 70, 90};
    auto itr = upper_bound(begin(A), end(A), X);
    if (itr != end(A)) {
        cout << *itr - X << '\n';
    } else {
        cout << "expert\n";
    }
}

posted:
last update: