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