#P16752. [Nerc2024]Geometric Balance

[Nerc2024]Geometric Balance

题目描述

Peter 的弟弟 Ivan 喜欢玩一只海龟玩具。这只海龟生活在平面上,可以执行三种命令:

  • 逆时针旋转 aa 度;
  • 沿当前朝向前进 dd 个单位,并在移动过程中绘制墨迹;
  • 沿当前朝向前进 dd 个单位,但不绘制墨迹。

保证平面上的任何线段都不会被墨迹覆盖超过一次。

Ivan 最近刚学会使用指南针,因此他只会让海龟朝向八个基本方向或斜方向之一。也就是说,所有 rotate 命令中的角度 aa 都是 4545 的倍数。

Ivan 至少会执行一次 draw 命令。

Peter 记录了 Ivan 给海龟下达的所有命令。他觉得海龟画出的图案非常可爱,并想知道满足下列条件的最小正角度 bb

  1. 先把海龟移动到平面上任意选定的位置;
  2. 再将海龟旋转 bb 度;
  3. 按原顺序重新执行所有命令。

重新执行命令后得到的图案必须与原图案完全相同。

若两幅图中被墨水覆盖的点集完全相同,则认为这两幅图相同。

输入格式

第一行包含一个整数 nn

1n50000,1\le n\le 50000,

表示命令数量。

接下来 nn 行,每行是一条命令,格式为以下三种之一:

rotate a

其中 45a36045\le a\le360,且 aa4545 的倍数;

draw d

其中 1d1091\le d\le10^9

move d

其中 1d1091\le d\le10^9

draw 命令至少有一条,至多有 2000 条。

保证平面上的任何线段都不会被墨迹覆盖超过一次。

输出格式

输出一个整数,表示满足要求的最小正角度 bb

保证答案一定存在。

样例 1

1
draw 10
180

样例 2

7
draw 1
rotate 90
draw 1
rotate 90
draw 1
rotate 90
draw 1
90

样例 3

3
draw 1
move 1
draw 2
360