pontz_rwのブログ

プログラミング等の備忘録

ITP1_2_D: Circle in a Rectangle

長方形の中の円 | プログラミング入門 | Aizu Online Judge
比較の問題


条件は、頂点(0, 0)と頂点(W, H)からなる長方形の中に円が含まれるかどうかです。
頂点(x, y)、頂点(W, H)と円の中心と半径との関係を考えます。

頂点(x, y)と、円の中心と半径との関係は、0 <= x - r and 0 <= y - r
頂点(W, H)と、円の中心と半径との関係は、x + r <= W and y + r <= H
これをまとめます。


解答1

W, H, x, y, r = list(map(int, input().split()))
print('Yes' if 0 <= x - r <= x + r <= W and 0 <= y - r <= y + r <= H else 'No')


上記の比較を円の中心(x, y)を基準に考えてみると、短い比較で済みます。
解答2

W, H, x, y, r = list(map(int, input().split()))
print('Yes' if r <= x <= W - r and r <= y <= H - r else 'No')