2300: 距离之和
内存限制:256 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:38
解决:6
题目描述
小 Y 创造了一个新的机器人并且决定去测试一下。我们可以想象测试的跑道是一个二维
的空间。初始的时候,机器人在(0,0)的位置,在收到了一系列命令之后,机器人就会移
动,这些命令是 S,J,I,Z,每个命令代表了不同的移动方向。
具体一下,如果机器人原来在(x,y)的位置,在收到了 S 的命令之后,会向(x,y+1)
移动,收到 J 之后,会向(x,y-‐1)移动,收到 I 命令之后会向(x+1,y)移动,收到 Z 命
令之后会向(x-‐1,y)移动。
在这个二维空间上有 N 个固定的控制点,在每个命令执行之后,每个固定点就会计算
自己与机器人的曼哈顿距离,然后把这些距离的总和返回给小 Y。
说明:两个点(x1,y1)和(x2,y2)的曼哈顿是|x1-‐x2|+|y1-‐y2|。
输入
第一行是正整数 N(1<=N<=100000)和 M(1<=M<=300000),N 表示控制点的个数,M
表示命令的数量,之间有一个空格隔开。
接下来 N 行,每行两个整数(绝对值不大于 1000000),表示控制点的坐标,有些控制
点可能是相同的,之间有一个空格隔开。
接下来一行,一个长度为 M 的字符串(包含以上四种命令),表示机器人依次收到的命
令。
输出
输出 M 行,每行一个整数,对于第 i 行,输出的是第 i 个命令执行以后所有控制点与机
器人的曼哈顿距离之和。
样例输入 复制
3 5
0 0
1 1
1 -1
SIJJZ
样例输出 复制
5
4
3
4
5
提示
【数据规模】
对于 40%的数据 N≤1000,M≤5000。
对于 100%的数据 N≤100000,M≤300000