领地
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

本题译自 JOI 2016 Final T4「縄張り
有一个平面直角坐标系。JOI君位于(0,0)。
JOI君每天都按照一个固定的程序移动一轮。该程序有N个步骤,用一个长度为N的字符串S描述。这个字符串仅由大写字母构成。
左数第i个字符表示JOI君会移动到哪里。如果在执行步骤i前,JOI君位于(x,y):
  • :JOI君将移动到(x+1,y);
  • :JOI君将移动到(x,y+1);
  • :JOI君将移动到(x-1,y);
  • :JOI君将移动到(x,y-1)。
次日JOI君会从他前一天停止的位置开始执行程序。
JOI君会把(0,0)以及每个步骤结束后到达的点作标记。开始时JOI君没有标记任何点。K天后,对于任意整数a,b,如果(a,b),(a+1,b),(a,b+1),(a+1,b+1)这四个点都被标记了一次或以上,以这四个点为顶点的的正方形就属于JOI君的领地。
请问K天后,JOI君有多少个领地。

输入描述:

第一行有两个整数N,K,用空格分隔。
第二行有一个字符串S,表示JOI君移动的程序。

输出描述:

一个整数,表示JOI君有多少个领地。
示例1

输入

复制
12 1
EENWSEEESWWS

输出

复制
3

说明

JOI2016T4.png
图中的字是之前完整题面的,懒得改了。「市政厅」表示(0,0),「散步路径」表示移动路线。
图我没有仔细PS过,可能对不齐、不对称,强迫症的同学们麻烦忍一忍
示例2

输入

复制
12 2
EENWSEEESWWS

输出

复制
7

说明

样例2与样例1的不同在于在样例2中JOI君走了两天。
JOI2016T4-1.png
示例3

输入

复制
7 1
ENNWNNE

输出

复制
0
示例4

输入

复制
16 5
WSESSSWWWEEENNNW

输出

复制
21

备注:

对于所有数据,

CC-BY-SA,感谢LOJ分享,译文来自https://loj.ac/problem/2345