#abc207d. [abc207_d]Congruence Points

[abc207_d]Congruence Points

问题陈述

给定两组点 S=(a1,b1),(a2,b2),ldots,(aN,bN)S=\\{(a_1,b_1),(a_2,b_2),\\ldots,(a_N,b_N)\\}T=(c1,d1),(c2,d2),ldots,(cN,dN)T=\\{(c_1,d_1),(c_2,d_2),\\ldots,(c_N,d_N)\\},每组包含 NN 个二维平面上的点。

判断能否通过对 SS 进行任意次数(可能为零)的以下操作之一(顺序任意)来使 SSTT 匹配:

  • 选择一个实数 p(0ltplt360)p\\ (0 \\lt p \\lt 360),将 SS 中的每个点绕原点顺时针旋转 pp 度。
  • 选择实数 qqrr,将 SS 中的每个点在 xx 方向上平移 qq,在 yy 方向上平移 rr。其中,qqrr 可以是任意实数,可以为正、负或零。

约束条件

  • 1leqNleq1001 \\leq N \\leq 100
  • \-10leqai,bi,ci,dileq10\-10 \\leq a_i,b_i,c_i,d_i \\leq 10
  • 如果 ineqji \\neq j,则 (ai,bi)neq(aj,bj)(a_i,b_i) \\neq (a_j,b_j)
  • 如果 ineqji \\neq j,则 (ci,di)neq(cj,dj)(c_i,d_i) \\neq (c_j,d_j)
  • 输入中的所有值都是整数。

输入

输入格式如下,从标准输入中获取:

NN a1a_1 b1b_1 a2a_2 b2b_2 vdots\\vdots aNa_N bNb_N c1c_1 d1d_1 c2c_2 d2d_2 vdots\\vdots cNc_N dNd_N

输出

如果能够将 SS 匹配到 TT,则输出 Yes;否则,输出 No


示例输入 1

3
0 0
0 1
1 0
2 0
3 0
3 1

示例输出 1

Yes

下图显示了给定的点集,其中 SSTT 中的点分别用红色和绿色绘制:

在这种情况下,我们可以通过以下方法将 SS 匹配到 TT

  1. SS 中的每个点绕原点顺时针旋转 270270 度。
  2. SS 中的每个点在 xx 方向上平移 33,在 yy 方向上平移 00

示例输入 2

3
1 0
1 1
3 0
-1 0
-1 1
-3 0

示例输出 2

No

下图显示了给定的点集:

尽管 SSTT 关于 yy 轴对称,但我们无法通过旋转和平移将 SS 匹配到 TT,如问题陈述所述。


示例输入 3

4
0 0
2 9
10 -2
-6 -7
0 0
2 9
10 -2
-6 -7

示例输出 3

Yes

示例输入 4

6
10 5
-9 3
1 -5
-6 -5
6 9
-9 0
-7 -10
-10 -5
5 4
9 0
0 -10
-10 -2

示例输出 4

Yes