#HK4314. 「ROIR 2023 Day1」机器人吸尘器

「ROIR 2023 Day1」机器人吸尘器

题目描述

译自 ROI Regional 2023 Day1 T3. Робот-пылесос

我们来看一个坐标平面,计划使用机器人吸尘器进行清洁。机器人吸尘器是一个大小为 k×kk \times k 的正方形,边与坐标轴平行。最初,机器人的左下角位于点 (0,0)(0,0),右上角位于点 (k,k)(k, k)

给定机器人在平面上的 nn 次移动,第 ii 次移动由方向 did_{i} 和距离 aia_{i} 描述。方向 did_{i} 可以是 N(向上,增加 YY 坐标),S(向下,减少 YY 坐标),W(向左,减少 XX 坐标)或 E(向右,增加 XX 坐标),aia_{i} 是移动的距离。

图中展示了机器人在每个方向上的可能移动。 机器人在每一时刻都会清洁其所在的整个区域。换句话说,当某个点在某一时刻属于机器人所在的 k×kk \times k 的正方形时,该点就被清洁了。

根据给定的机器人移动,计算被清洁的总面积。

输入格式

第一行输入包含两个整数:机器人的大小 kk 和命令数量 nn (1k104,1n105)(1 \leq k \leq 10^4, 1 \leq n \leq 10^5)

接下来的 nn 行中,每行包含一个方向 did_{i} 和一个距离 aia_{i}did_{i}NSWE1ai1091 \leq a_{i} \leq 10^9)。

输出格式

输出被机器人清洁的总面积。

1 5
E 2
N 2
W 4
S 4
E 4
17
3 4
W 2
N 1
W 1
N 2
27

下面是根据题目中的样例,机器人移动的示意图。机器人移动过程中访问过的格子被阴影标出。

数据范围与提示

详细子任务附加限制及分值如下表所示。

子任务 分值 附加限制 子任务依赖
11 99 k=1,n10,ai10k=1, n \leq 10, a_{i} \leq 10
22 1010 k10,n10,ai100k \leq 10, n \leq 10, a_{i} \leq 100 11
33 1111 k1000,n1000,ai=1k \leq 1000, n \leq 1000, a_{i}=1
44 88 k104,n105,ai=kk \leq 10^4, n \leq 10^5, a_{i}=k
55 1414 k=1,n1000,ai109k=1, n \leq 1000, a_{i} \leq 10^9 11
66 1515 k104,n1000,ai109k \leq 10^4, n \leq 1000, a_{i} \leq 10^9 13,51\sim 3,5
77 1616 k=1,n105,ai109k=1, n \leq 10^5, a_{i} \leq 10^9 1,51,5
88 1717 k104,n105,ai109k \leq 10^4, n \leq 10^5, a_{i} \leq 10^9 171\sim 7