ABC056-B - NarrowRectanglesEasy を解く
ABC056-B - NarrowRectanglesEasy
2つの同じ幅の長方形があり、上側にある長方形を横方向にどれだけ動かせば
お互いが接する位置に移動できるかを求める問題
この問題は、2つの図形の位置関係をよく考える必要がある
具体的には、上の図形が下の図形より右側にあるか、左側にあるか、ということだ
しっかりと場合分けをして、答えを求める必要がある
以上を踏まえて書いたコードを以下に示す
提出したコード
# 入力 W,a,b=map(int,input().split()) # 上の図形が下の図形より左側にある場合 if b<a: # 初めから接している場合 if a<=b+W: print(0) else: print(a-(b+W)) # 下の図形の真上に上の図形がある場合 elif b==a: print(0) # 上の図形が下の図形より右側にある場合 else: # 初めから接している場合 if b<=a+W: print(0) else: print(b-(a+W))
提出結果はACでした
ガチガチに場合分けをしてコードを書いたけれど
解説PDFではとてもシンプルな説明が書かれている
ちょっと今回の自分の実装は無駄が多かったようだ…
興味のある方は確認してみてください
AtCoder Beginner Contest 056 解説