#C. 门(door.cpp)

    Type: FileIO (door) 1000ms 256MiB

门(door.cpp)

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

Background

Special for beginners, ^_^

Description

小C打算在他家里院子的一部分,建设一个围栏。小C从(0,0)出发,走N 步(只能向东、向南、向西或向东,且每步移动一单位),凡是他走过的地方都会建造一个围栏。例如,如果他的第一步向北,他建造一单位从(0,0)到(0,1)的围栏。(坐标可以为负数)

但是因为小C的粗心,他可能重复到达过某个点,他也可能重复建造一段围栏多次,他走过的的路径还可能穿过一段已经建成的围栏,这导致他建造的围栏变成一个很奇怪的形状。

特别糟糕的是,小C发现建造的围栏有很多交叉,导致一些区域被围栏封闭起来,从而无法到达。

为了使得院子里的所有地方都能到达,小C只能通过在围栏上安装门来解决这个问题。门可以安装在任意一段单位长度(注:必须是之前走过的某一步)的围栏上,从而可以穿越这段围栏的两侧。

请计算小C最少需要安装多少个门,才能保证院子上任意区域到任意区域都可到达。

Format

Input

1行:包含N。

2行:包含一个长度为N的字符串,描述小C的路径。每个字符为N(北),E(东),S(南),或W(西)。

Output

输出一个整数,表示为了保证院子所有区域的连通性,小C最少需要安装多少个门。

Samples

14
NNNESWWWSSEEEE
2

Limitation

注意,如果院子初始连通,答案就是0。

对于 20% 的数据,保证 1 ≤ n ≤ 100;

对于100% 的数据,保证 1 ≤ n ≤ 1000;

【初中 CSP-J 第4套模拟题 改题】

Not Attended
Status
Done
Rule
IOI
Problem
3
Start at
2023-10-9 18:00
End at
2023-10-18 2:00
Duration
200 hour(s)
Host
Partic.
29