本サイト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")
【python】input関数の使い方
python公式ドキュメントはこちら Pythonで用意されている組み込み関数の input 関数の使い方です。キーボードから入力した文字や数値を受け取る際に使用します。 input …
【python】map関数の使い方
python公式ドキュメントはこちら Pythonで用意されている組み込み関数の map 関数の使い方です。第二引数に設定したリストなどのイテラブルオブジェクトを、第一引数に…
【python】if文の使い方
python公式ドキュメントはこちら if 文は条件分岐をおこなうための文法です。Pythonのif文は、一般的な他のプログラミング言語と同様に、条件式の結果が真(true)である…
【python】print関数の使い方
python公式ドキュメントはこちら Pythonで用意されている組み込み関数の中の print 関数の使い方です。引数に指定した文字列や数値、変数に格納された値などを標準出力…
次の問題へ
AIZU ONLINE JUDGE ITP1_3_Aをpythonで解いてみた
本サイトAIZU ONLINE JUDGE ITP1_3_A へは以下から 問題:複数の Hello World の出力 1000 個の “Hello World” を出力するプログラムを作成して下さい。 Input この問題…
前の問題へ
AIZU ONLINE JUDGE ITP1_2_Dをpythonで解いてみた
本サイトAIZU ONLINE JUDGE ITP1_2_D へは以下から 問題:長方形の中の円 長方形の中に円が含まれるかを判定するプログラムを作成してください。次のように、長方形は左…
一覧へ
AOJ 「ITP I」40問をpythonで解いてみた
本記事では「レッドコーダーが教える、競プロ・AtCoder上達のガイドライン【初級編:競プロを始めよう】」で紹介されているAOJの「Introduction To Programming I」の40…
コメント