题目描述
【题目描述】
农民约翰在管理农场的各个方面都很可靠,除了一个:他在及时或合乎逻辑地割草方面很糟糕。
他的农场是一个由方形单元组成的大型二维网格。FJ在时间t=0时在其中一个方格中开始割草,因此它最初是唯一一个在其中剪草的单元格。FJ的剩余割草模式由一系列N个语句描述。例如,如果第一个语句是“W 10”,那么对于时间t=1到t=10(即,接下来的10个时间单位),FJ会将向西边移动,在t=10的时间结束在他西边的10个单元格,并在沿途的每个单元格中割草。
FJ的进度太慢了,以至于他割完的一些草可能会在他完成所有割草之前重新长出来。在时间t切割的任何草段将在时间t+x重新出现。
FJ的割草模式可能会让他多次访问同一个草地,但他表示,他从未遇到过已经割过草的草地。也就是说,每次他访问一个草地时,他最近一次访问同一个草地的时间必须提前至少x个单位,这样草才能长回来。
请确定x的最大可能值,以便FJ的观察结果保持有效。
【输入格式】(mowing.in):
第一行输入包含N(1≤N≤100). 剩余的N行中的每一行都包含一条语句,其形式为“D S”,其中D是描述方向的字符(N=北,E=东,S=南,W=西),S是该方向上采取的步骤数(1≤S≤10).
【输出格式】(mowing.out):
请确定x的最大值,这样FJ就不会踩到割草的单元格。如果FJ从未多次访问任何单元格,请输出-1。
【样本输入】:
6
N 10
E 2
S 3
W 4
S 5
E 8
【样本输出】:
10
在这个例子中,FJ在时间17踩到了他在时间7之前踩到的一个单元格;因此,x必须最多为10,否则他第一次访问时的草还不会长回来。他也在时间26踏上了他在时间2访问过的牢房;因此x也必须最多为24。由于这两个约束中的第一个约束更紧,我们可以看到x最多为10。