AIZU ONLINE JUDGE ITP1_2_Dをpythonで解いてみた

本サイトAIZU ONLINE JUDGE ITP1_2_D へは以下から

問題:長方形の中の円

長方形の中に円が含まれるかを判定するプログラムを作成してください。次のように、長方形は左下の頂点を原点とし、右上の頂点の座標 (W,H)(W,H) が与えられます。また、円はその中心の座標 (x,y)(x,y) と半径 r で与えられます。

Input

5つの整数 W、H、x、y、r が空白区切りで1行に与えられます。

Output

円が長方形の内部に含まれるなら Yes と、一部でもはみ出るならば No と1行に出力してください。

Constraints

  • −100 ≤ x,y ≤ 100
  • 0 < W,H,r ≤ 100

Sample Input 1

5 4 2 2 1

Sample Output 1

Yes

Sample Input 2

5 4 2 4 1

Sample Output 2

No

解答例

W, H, x, y, r = map(int, input().split())

if x - r >= 0 and x + r <= W and y - r >= 0 and y + r <= H:
    print("Yes")
else:
    print("No")

解説

この問題は、与えられた長方形の中に指定された円が完全に収まっているかを判断するものです。

  • 入力の受け取り: input().split()を使用して空白で区切られた5つの入力(W, H, x, y, r)を受け取ります。その後、map()関数とint()関数を使用して、それぞれの入力を整数に変換します。これにより、長方形の幅W、高さH、円の中心のx座標、y座標、半径rが得られます。
  • 条件の確認: 以下の4つの条件を確認します。
    • 円の左端(x – r)が0以上であること
    • 円の右端(x + r)がW以下であること
    • 円の下端(y – r)が0以上であること
    • 円の上端(y + r)がH以下であること これらの条件は、if文の中で論理AND演算子(and)を使用して組み合わせられています。
  • 結果の出力: 上記の条件をすべて満たす場合、print("Yes")を使用して”Yes”を出力します。それ以外の場合、print("No")を使用して”No”を出力します。

以下は、この問題を解くためのPython3のプログラムです。

# 入力を受け取る
W, H, x, y, r = map(int, input().split())

# 円が長方形の内部に収まっているかを判断する条件を確認
# 1. 円の左端(x - r)が0以上であること
# 2. 円の右端(x + r)がW以下であること
# 3. 円の下端(y - r)が0以上であること
# 4. 円の上端(y + r)がH以下であること
if x - r >= 0 and x + r <= W and y - r >= 0 and y + r <= H:
    # すべての条件を満たす場合、"Yes"を出力
    print("Yes")
else:
    # 条件を満たさない場合、"No"を出力
    print("No")

次の問題へ

前の問題へ

一覧へ

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

雇われのシステムエンジニアです。
普段は車載ECUのセキュリティー分野に従事しております。

コメント

コメントする

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約が適用されます。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

目次