#joi2016hod. [joi2016ho_d]縄張り (Territory)
[joi2016ho_d]縄張り (Territory)
翻译
你住在一座由南北方向非常长的道路和东西方向非常长的道路交叉而成的城市中。相邻的两条南北方向的道路之间的距离为1公里。相邻的两条东西方向的道路之间的距离也为1公里。
这座城市有一个市政厅。用坐标表示市政厅所在的交叉点。城市的交叉点可以用两个整数表示,即交叉点表示从交叉点向东移动公里(当时向西移动公里),向北移动公里(当时向南移动公里)后到达的交叉点。
在市政厅饲养着一只名叫Joy的狗。Joy计划了连续天的散步。散步计划如下:
- 在第一天的早上,Joy位于交叉点。Joy在交叉点做上标记。除了之外,Joy没有在其他交叉点做标记。
- 每天的中午进行一次散步。每次散步由个步骤组成。在每个步骤中,Joy从一个交叉点移动到相邻的交叉点,并在目的地做上标记。不管是哪一天,Joy的移动方式是一样的。
- 在中午的移动结束后,Joy在当前的交叉点休息直到第二天早上。市政厅讨论了Joy根据天的散步形成的领地。当Joy在四个相邻交叉点中至少标记过一次时,围绕着这四个交叉点形成的区域属于Joy的领地。
你需要编写一个程序来计算从Joy的散步计划中可以得到的领地区域的数量。
任务
给定Joy的散步计划,编写一个程序来计算Joy的领地区域的数量。
输入
从标准输入读取以下内容:
- 第一行包含两个整数 和 ,用空格分隔,表示每天有个步骤,散步计划持续天。
- 第二行包含长度为的字符串,表示散步计划的具体内容。字符串的第个字符()为,可以是
E
,N
,W
,S
中的一个。这些字符表示以下含义:- 如果字符是
E
,表示在第个步骤中向东移动。 - 如果字符是
N
,表示在第个步骤中向北移动。 - 如果字符是
W
,表示在第个步骤中向西移动。 - 如果字符是
S
,表示在第个步骤中向南移动。对于坐标的交叉点,东邻、北邻、西邻、南邻的交叉点分别为,,,。
- 如果字符是
输出
将结果输出到标准输出中,输出Joy的领地区域的数量(一个整数)。
限制条件
所有输入数据都满足以下条件:
- 。
- 。
子任务
子任务1 [5分]
满足以下条件:
- 。
- 。
子任务 2 [10 分]
满足。
子任务 3 [23 分]
满足。
子任务 4 [62 分]
没有额外的限制。
示例输入1
12 1
EENWSEEESWWS
示例输出1
3
在这个示例中,散步只持续了一天。第一天,Joy离开市政厅并移动如下图所示。
黑色圆圈表示Joy标记过的交叉点,白色圆圈表示Joy未标记的交叉点,双重圆圈表示市政厅所在的交叉点,数字表示每个步骤。
Joy的移动路线
根据输入示例1,在斜线部分标记的3个区域属于Joy的领地。
输入示例1中Joy的领地