小 A 开发了一款像素涂色小游戏。游戏的画布是一个无限大的二维方格网络,初始时每个格子都是空白的。画布上有 N 支自动画笔(1 \le N \le 1000),初始时位于互不相同的格子中,一部分朝向北面,一部分朝向东面。
每一小时,每支仍在工作的画笔会执行以下二者之一:
经过一段时间,每支画笔的身后会留下一条涂了色的轨迹。
如果两支画笔在同一次移动中进入了同一个空白格子,她们会合作涂完这个格子的颜色,并在下一个小时各自继续沿朝向的方向移动。
小 A 想统计每支画笔"惹的麻烦"。如果画笔 b 停在了之前画笔 a 涂过色的格子上,我们就称画笔 a 卡住了画笔 b。进一步地,如果画笔 a 卡住了画笔 b,且画笔 b 卡住了画笔 c,我们认为画笔 a 也卡住了画笔 c(也就是说,「卡住」关系具有传递性)。请你计算每支画笔卡住的画笔总数。
输入的第一行包含 N。以下 N 行,每行描述一支画笔的起始位置,包含一个字符 N(表示朝向北面)或 E(表示朝向东面),以及两个非负整数 x 和 y(0 \le x \le 10^9,0 \le y \le 10^9)表示格子的坐标。所有 x 坐标各不相同,所有 y 坐标各不相同。
为了使方向和坐标尽可能明确:如果一支画笔位于格子 (x,y) 并向北移动,她会到达格子 (x,y+1);如果她向东移动,她会到达格子 (x+1,y)。
输出 N 行。输出的第 i 行包含输入中的第 i 支画笔卡住的画笔总数。
3 E 0 3 N 4 1 N 6 5
0 1 0
5 E 1 4 N 3 1 E 2 6 N 6 2 E 5 8
1 0 0 2 3
8 E 0 6 N 3 0 E 1 9 N 5 2 E 4 12 N 8 4 E 7 15 N 10 1
1 0 3 2 6 4 0 0
样例 1:第 2 支画笔向北前进,在第 2 小时涂色格子 (4,3);第 1 支画笔沿 y=3 向东,第 4 小时走到 (4,3) 时发现已被涂色而停笔。因此画笔 2 卡住了 1 支画笔。画笔 3 的路线与其他画笔不相交。
样例 2:画笔 5 先涂过 (6,8);画笔 4 向北走到 (6,8) 时停笔,故画笔 5 卡住了画笔 4。此后画笔 1 停在画笔 4 的轨迹 (6,4) 上,画笔 2 停在画笔 1 的轨迹 (3,4) 上。根据传递性,画笔 5 共卡住 3 支,画笔 4 卡住 2 支,画笔 1 卡住 1 支。此外,画笔 3 与画笔 4 在第 4 小时同时进入空白格 (6,6),两支画笔合作涂色后各自继续前进,互不影响。
对于 100\% 的数据,1\le N\le 1000,0\le x,y\le 10^9,每支画笔的方向只可能为 N 或 E,所有 x 坐标两两不同,所有 y 坐标两两不同。
本题共 10 个测试点,每个测试点 10 分。具体数据范围如下:
| 测试点编号 | N \le | 坐标范围 | 特殊性质 |
|---|---|---|---|
| 1 | 10 | 0\le x,y\le 20 | A |
| 2 | 200 | 0\le x,y\le 2000 | A |
| 3 | 500 | 0\le x,y\le 2000 | A |
| 4 | 750 | 0\le x,y\le 2000 | A |
| 5 | 1000 | 0\le x,y\le 2000 | A |
| 6 | 350 | 0\le x,y\le 10^9 | 无 |
| 7 | 600 | 0\le x,y\le 10^9 | 无 |
| 8 | 750 | 0\le x,y\le 10^9 | 无 |
| 9 | 900 | 0\le x,y\le 10^9 | 无 |
| 10 | 1000 | 0\le x,y\le 10^9 | 无 |
特殊性质 A:所有坐标均不超过 2000。