AtCoder ABC 056 B – NarrowRectanglesEasy Python解説

2021年11月21日

スポンサーリンク

NarrowRectanglesEasy

今回の問題はこちら「NarrowRectanglesEasy」。長方形を連結するために動かさないといけない距離の最小値を求めます。

2つの長方形の位置関係により、場合分けをしてコードを書いてみました。

w, a, b = map(int, input().split())

if a <= b:
    if a + w < b:
        print(b - (a + w))
    else:
        print(0)
else:
    if b + w < a:
        print(a - (b + w))
    else:
        print(0)

2つの長方形A、Bがそれぞれ左側にある場合、右側にある場合で条件分岐し、動かす最小距離、すでに接しているかを見ています。

w, a, b = map(int, input().split())

if abs(a - b) <= w:
    print(0)
else:
    print(abs(a - b) - w)

更にシンプルに書くなら上記のようになります。初めの条件文で2つの長方形がすでに接しているかをチェックし、接していなければ差分を取っています。共に絶対値を使っているところがポイントです。