AtCoder ABC 108 B – Ruined Square Python解説

スポンサーリンク

Ruined Square

xy 平面上に正方形があり、4 つの頂点の座標は反時計回りに順番に(x1​,y1​),(x2​,y2​),(x3​,y3​),(x4​,y4​) です。

高橋君は、これら 4 つの座標のうち(x3​,y3​),(x4​,y4​)を忘れてしまいました。

x1​,x2​,y1​,y2​ が与えられるので、x3​,y3​,x4​,y4​ を復元してください。なお、これらの条件から、x3​,y3​,x4​,y4​は一意に存在し、整数となることが証明できます。

AtCoder Beginner Contest 「Ruined Square」

正方形の4つの頂点座標のうち、x1,y1,x2,y2が与えられるので残りの座標x3,y3,x4,y4を求める問題。この問題は高校数学で習う回転行列を知っていると簡単に解けそうですが、回転行列を使わなくても解けます。

x1, y1, x2, y2 = map(int, input().split())

x = x2 - x1
y = y2 - y1

x3 = x2 - y
y3 = y2 + x

x4 = x1 - y
y4 = y1 + x

print(x3, y3, x4, y4)