P10801 [CEOI 2024] 海战

题目描述

**题目译自 [CEOI 2024](https://ceoi2024.fi.muni.cz/) Day1 T1「[Naval battle](https://ceoi2024.fi.muni.cz/page/tasks/statements/battle.pdf)」** 捷克海军司令官翁德拉刚刚晋升为大元帅,正享受着新职位的安稳,却突然被政府通知海军将被裁撤。 翁德拉决心证明捷克海军的重要性。他通过间谍得知,一场四国海军巨舰对决即将展开。如果能赢得这场战役,无疑能向政府有力地展示海军价值。 然而,捷克海军既无战舰也无港口。但翁德拉想到,如果他的间谍能夺取几艘参战舰艇,或许还有一线生机。关键是,如何预知哪些船能在这场海战中幸存下来呢? 海战规则如下: - 战前,第 $i$ 艘战舰位于坐标 $(x_i, y_i)$ 处,其中 $x_i$ 和 $y_i$ 均为偶数。每艘战舰隶属于北方、南方、东方或西方舰队之一。 - 海战分回合进行。每回合: - 每艘战舰同时向其所属舰队方向移动一格。 - 如果两艘或以上战舰占据同一格,它们将相撞沉没,从海图上消失。 - 当不再发生碰撞时,海战结束。存活的战舰是指海战结束后仍留在海图上的战舰。 各舰队战舰的移动方向及坐标变化如下: - 北方舰队:$y$ 坐标减 $1$ - 南方舰队:$y$ 坐标加 $1$ - 东方舰队:$x$ 坐标加 $1$ - 西方舰队:$x$ 坐标减 $1$

输入格式

第一行输入一个整数 $N$,代表参与海战的舰船总数。 接下来是 $N$ 行,每行包含三个用空格隔开的整数 $x_i, y_i, d_i$。$x_i$ 和 $y_i$ 表示第 $i$ 艘舰船的初始位置,字符 $d_i$ 表示第 $i$ 艘舰船所属舰队的方向,它可以是 `N`、`S`、`E` 或 `W` 之一。 初始时没有两艘舰船的坐标相同。换句话说,对于任何两艘不同的舰船 $i$ 和 $j$,它们的横坐标 $x_i$ 和 $x_j$ 不可能同时相等,纵坐标 $y_i$ 和 $y_j$ 也不可能同时相等。

输出格式

对于每艘存活的战舰,单独输出一行,包含该舰船的编号 $i\ (1 \leq i \leq N)$。你可以按照任何顺序输出幸存舰船的编号。 如果没有存活的战舰,则输出为空。

说明/提示

**样例解释 1** 初始战舰分布如下图: ![battle-sample1-v2.svg](https://img.loj.ac.cn/2024/07/14/c9908b56ff284.svg) 海战过程: - 第 $2$ 回合,战舰 $3$ 和 $4$ 在 $(4, 4)$ 处相撞。 - 第 $6$ 回合,战舰 $1$ 和 $5$ 在 $(6, 6)$ 处相撞,战舰 $2$ 和 $6$ 在 $(6, 8)$ 处相撞。 最终仅剩战舰 $7$ 存活。 **样例解释 2** 初始战舰分布如下图: ![battle-sample2.svg](https://img.loj.ac.cn/2024/07/14/59d352521ca5d.svg) 第 $2$ 回合,战舰 $1$、$3$、$4$ 在 $(2, 4)$ 处相撞,战舰 $2$ 和 $5$ 存活。 **数据范围与提示** 对于所有输入数据,满足: - $2 \leq N \leq 2 \cdot 10^5$ - $0 \leq x_i, y_i \leq 10^9\ (1 \leq i \leq N)$,且 $x_i, y_i$ 均为偶数 详细子任务附加限制及分值如下表所示。 | 子任务 | 附加限制 | 分值 | | :--: | :--: | :--: | | $1$ | $N = 2$ | $6$ | | $2$ | $N \leq 100, x_i, y_i \leq 100\ (1\leq i\leq n)$ | $12$ | | $3$ | $N \leq 100, x_i, y_i \leq 10^5\ (1\leq i\leq n)$ | $8$ | | $4$ | $N \leq 200$ | $11$ | | $5$ | $N \leq 5\,000$ | $9$ | | $6$ | $d_i\ (1 \leq i \leq N)$ 为 `S` 或 `E` | $30$ | | $7$ | 无附加限制| $24$ |