#P12098. [NERC2024] Geometric Balance

[NERC2024] Geometric Balance

Description

Peter 的弟弟 Ivan 喜欢和一只小乌龟玩耍。这只乌龟是一种特殊的玩具,它生活在平面上,能够执行三种指令:

  • 逆时针旋转 aa 度;
  • 沿当前朝向绘制 dd 个单位长度的线段,并留下墨迹。平面上的任意线段最多只会被涂墨一次;
  • 沿当前朝向移动 dd 个单位长度,但不留下任何痕迹。

Ivan 刚刚学会使用指南针,因此他只会让乌龟朝向八个基本方向或次方向旋转(旋转角度 aa 总是 4545 的倍数)。此外,他至少会发出一条 draw\texttt{draw} 指令。

Peter 记录了 Ivan 给乌龟下达的所有指令。他觉得乌龟绘制出的图案非常可爱。现在 Peter 想知道一个最小的正角度 bb,使得他可以进行如下操作:将乌龟移动到任意位置,将其旋转 bb 度,然后按原顺序重新执行全部指令,最终绘制出的图案与原图案完全一致。

你能帮 Peter 找出这个最小的角度 bb 吗?

注意,如果两幅图在平面上被墨迹覆盖的点集合相同,则认为它们是相同的图案。

Input Format

第一行输入一个整数 n  (1n50000)n\;(1 \le n \le 50000) —— 表示 Ivan 发出的指令数。

接下来的 nn 行中,每行表示一条指令,格式如下之一:

  • rotate\texttt{rotate} aa45a36045 \le a \le 360,并且 aa4545 的倍数);
  • draw\texttt{draw} dd1d1091 \le d \le 10^9);
  • move\texttt{move} dd1d1091 \le d \le 10^9)。

保证至少有一条且最多 20002000 条指令为 draw\texttt{draw}。同时保证绘图过程中,平面上不会有任何线段被重复涂墨。

Output Format

输出一个整数,表示最小的角度 bb,使得执行指定的操作后能够得到与原图案相同的结果。答案总是存在。

1
draw 10
180
7
draw 1
rotate 90
draw 1
rotate 90
draw 1
rotate 90
draw 1
90
3
draw 1
move 1
draw 2
360