QOJ.ac

QOJ

حد الوقت: 1 s حد الذاكرة: 32 MB مجموع النقاط: 10

#13514. Jasiek

الإحصائيات

Jasiek 只有 6 岁,但他已经展现出了许多天赋。他非常喜欢画画和编谜题。今天早上,他从妈妈那里得到了一张方格纸和一支铅笔,便兴致勃勃地开始画画。Jasiek 的所有画作都有一些共同的特征:

  • Jasiek 涂黑的是完整的方格;
  • 如果两个涂黑的方格相接触,则它们共享一条边或一个角;
  • 它们是连通的,这意味着在任意两个涂黑的方格之间,都存在一条由涂黑方格组成的路径,其中每两个相邻的方格都共享一条边;
  • 没有白色的“洞”,也就是说,从任何一个白色方格出发,都可以画一条线连接到纸张的边缘,且这条线绝不接触任何涂黑的方格。

中午,妈妈打来电话,问他今天的画画了什么。这个小家伙没有直接回答,而是通过描述沿着画作边缘的涂黑方格走一圈所需的移动序列来描述这幅画。边缘方格是指与至少一个白色方格共享至少一个角的涂黑方格。Jasiek 确定了一个起始方格,然后给出了绕画作一圈所需的移动方向序列。已知 Jasiek 是按逆时针方向描述这幅画的。妈妈对画作的复杂性感到非常惊讶,尤其是涂黑方格的数量。你能根据 Jasiek 的描述,快速计算出画作中共有多少个涂黑的方格吗?

写一个程序:

  • 读入 Jasiek 画作的描述;
  • 计算所有涂黑方格的数量;
  • 输出结果。

输入格式

输入由若干行组成,每行仅包含一个字符。

第一行包含大写字母 P,最后一行包含大写字母 K。字母 P 表示描述的开始,字母 K 表示描述的结束。

在其余的每一行中(如果有的话),记录了一个字母 NWSE,其中 N 表示北,W 表示西,S 表示南,E 表示东。

输入的每一行对应画作边缘的一个方格。第一行和最后一行对应同一个方格,即描述开始和结束的方格。

除第一行和最后一行外,每行中的字母表示在逆时针绕画作移动时,走向下一个边缘方格的方向。

Jasiek 的描述没有冗余,即在绕画作一圈并回到起始方格后立即结束。

描述的长度不超过 $20\,000$ 个字母。

输出格式

你的程序应该输出唯一的一行,包含一个整数,表示 Jasiek 画作中涂黑方格的总数。

样例

输入样例 1

P
S
S
S
E
N
E
E
S
E
E
N
N
N
N
S
S
S
W
W
N
N
W
W
W
N
S
K

输出样例 1

23

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.