Official

A - Robot Balance Editorial by MMNMM


初心者の方へ

この問題は、以下のような処理が実装できれば解くことができます。

  • すでに頭の重さが体の重さ以下なら、\(0\) を出力する。
  • そうでなければ、\(H-B\) を出力する。

if 文を用いたり、少し式変形をして max 関数などを用いることでこの処理を実装することができます。

実装例は以下のようになります。

if 文を使う実装例

#include <iostream>
using namespace std;

int main() {
    int H, B;
    cin >> H >> B;

    if (H <= B) { // すでに頭の重さが体の重さ以下なら
        cout << 0 << endl; // 0 を出力する
    } else { // そうでなければ、
        cout << H - B << endl; // H - B を出力する
    }
    return 0;
}
H, B = map(int, input().split())

if H <= B: # すでに頭の重さが体の重さ以下なら
    print(0) # 0 を出力する
else: # そうでなければ、
    print(H - B) # H - B を出力する

max 関数を使う実装例

上記の処理は、

  • \(H\le B\) なら、\(B-B\) を出力する。
  • そうでなければ、\(H-B\) を出力する。

と言い換えられます。 これは、

  • \(\max\lbrace H,B\rbrace-B\) を出力する。

と変形することができます。 これを実装することでこの問題を解くことができます。

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

int main() {
    int H, B;
    cin >> H >> B;

    cout << max(H, B) - B << endl;
    return 0;
}
H, B = map(int, input().split())

print(max(H, B) - B)

posted:
last update: