配点 : 400 点
問題文
要素数が共に N であるような二次元平面上の点の集合 S={(a1,b1),(a2,b2),…,(aN,bN)} と T={(c1,d1),(c2,d2),…,(cN,dN)} が与えられます。
S に対して以下の操作を 0 回以上任意の順に好きなだけ繰り返すことで、S と T を一致させられるかを判定してください。
- 実数 p (0<p<360) を定め、 S に含まれる全ての点を、原点を中心に時計回りに p 度回転させる。
- 実数 q,r を定める。S に含まれる全ての点を、x 軸方向に q, y 軸方向に r 移動させる。q, r の値域に制約はなく、特に正/負/零のいずれになってもよい。
制約
- 1≤N≤100
- −10≤ai,bi,ci,di≤10
- i=j なら (ai,bi)=(aj,bj)
- i=j なら (ci,di)=(cj,dj)
- 入力は全て整数
入力
入力は以下の形式で標準入力から与えられる。
N
a1 b1
a2 b2
⋮
aN bN
c1 d1
c2 d2
⋮
cN dN
出力
問題文中の操作によって S と T を一致させられるなら Yes
を、一致させられないなら No
を出力せよ。
S に含まれる点を赤で、T に含まれる点を緑で塗った場合、与えられる点集合は以下の図の通りになります。

この場合、以下の手順によって S を T に一致させることができます。
- S に含まれる全ての点を、原点を中心に時計回りに 270 度回転させる。
- S に含まれる全ての点を、x 軸方向に 3, y 軸方向に 0 移動させる。
入力に対応する図は以下の通りです。

S と T は y 軸に対して線対称ですが、問題文中に書かれているような回転操作、移動操作によって S と T を一致させることはできません。