编程题
### 问题描述 小齐的牛场可以看作一个无限的二维网格,每个方格都有美味的草。有 $N$ 头牛,每头牛初始时站在不同的方格上,有的面朝北,有的面朝东。 每个小时,每头牛都会执行以下两个操作之一: 如果当前所在方格的草已经被其他牛吃光,那么停止移动,从此不再移动。 吃掉当前所在方格的草,然后向自己朝向的方向移动一个方格。 如果两头牛在同一时刻移动到同一个方格并共享这个方格,她们会一起移动到下一个方格。 小齐不喜欢看到牛停止吃草,他想知道哪头牛导致了其他牛的停止。如果牛 $b$ 在牛 $a$ 原先吃草的方格停止,那么我们说牛 $a$ 使得牛 $b$ 停止。此外,如果牛 $a$ 使得牛 $b$ 停止,而牛 $b$ 使得牛 $c$ 停止,我们也说牛 $a$ 同样使得牛 $c$ 停止(即“停止”关系是传递的)。对于每头牛,请计算她所导致的停止数量。 ### 输入格式 第一行输入一个整数 $N$,表示牛的数量。 接下来的 $N$ 行描述每头牛的初始位置和朝向。每行包含一个字符($N$ 表示面朝北,$E$ 表示面朝东)和两个非负整数 $x$ 和 $y$,表示初始位置的坐标。 ### 输出格式 输出 $N$ 行,第 $i$ 行表示第 $i$ 头牛所导致的停止数量。 ### 样例输入 ``` 6 E 3 5 N 5 3 E 4 6 E 10 4 N 11 1 E 9 2 ``` ### 样例输出 ``` 0 0 1 2 1 0 ``` ### 评测数据规模 $0 \leq x, y \leq 10^9$。
查看答案
赣ICP备20007335号-2