AtCoder Beginner Contest

【pythonでABC188を解説】A - Three-Point Shot

問題概要

問題ページ

問題文

バスケットボールの試合が行われており、現在の両チームの得点は \(X\) 対 \(Y\) です。ここで \(X \neq Y\) であることが保証されます。
現在劣勢であるチームが、 \(3\) ポイントシュートを一本成功させて優勢に立つことはできますか?
つまり、現在得点が低い側のチームが \(3\) 点を得た場合、そのチームの得点が他方のチームの得点より真に高くなるかを判定してください。

制約

  • \(0 \le X \le 100\)
  • \(0 \le Y \le 100\)
  • \(X \neq Y\)
  • \(X, Y\) は整数である

問題の考察

劣勢のチームが\(3\) ポイントシュートで\(3\) 点を得た場合に逆転できるか答える問題。

「真に高くなる」の意味が分かれば簡単な問題。

こういう競プロ特有の言い回しは問題に慣れるしかない。

\(X\)と\(Y\)のいずれが勝っているか分からないが、\(X \neq Y\)なので同点ではない。

逆転するためには点差が\(3\)点未満であればよい。

abs()で絶対値(点差)が\(3\)点未満かif文で確認して答えを出力すればよい。

たびすけ
競プロ特有の言い回しは問題数をこなして慣れましょう!

ACコード

import sys


def solve():
    input = sys.stdin.readline
    mod = 10 ** 9 + 7
    x, y = list(map(int, input().rstrip('\n').split()))
    print("Yes" if abs(x - y) < 3 else "No")


if __name__ == '__main__':
    solve()

-AtCoder Beginner Contest
-