#abc207d. [abc207_d]Congruence Points
[abc207_d]Congruence Points
问题陈述
给定两组点 和 ,每组包含 个二维平面上的点。
判断能否通过对 进行任意次数(可能为零)的以下操作之一(顺序任意)来使 与 匹配:
- 选择一个实数 ,将 中的每个点绕原点顺时针旋转 度。
- 选择实数 和 ,将 中的每个点在 方向上平移 ,在 方向上平移 。其中, 和 可以是任意实数,可以为正、负或零。
约束条件
- 如果 ,则 。
- 如果 ,则 。
- 输入中的所有值都是整数。
输入
输入格式如下,从标准输入中获取:
输出
如果能够将 匹配到 ,则输出 Yes
;否则,输出 No
。
示例输入 1
3
0 0
0 1
1 0
2 0
3 0
3 1
示例输出 1
Yes
下图显示了给定的点集,其中 和 中的点分别用红色和绿色绘制:
在这种情况下,我们可以通过以下方法将 匹配到 :
- 将 中的每个点绕原点顺时针旋转 度。
- 将 中的每个点在 方向上平移 ,在 方向上平移 。
示例输入 2
3
1 0
1 1
3 0
-1 0
-1 1
-3 0
示例输出 2
No
下图显示了给定的点集:
尽管 和 关于 轴对称,但我们无法通过旋转和平移将 匹配到 ,如问题陈述所述。
示例输入 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