AT_abc398_d [ABC398D] Bonfire

题目描述

[problemUrl]: https://atcoder.jp/contests/abc398/tasks/abc398_d 在无限广阔的二维网格中,坐标 $(0, 0)$ 处有一堆篝火。 在时刻 $t=0$ 时,仅单元格 $(0, 0)$ 存在烟雾。 给定一个由 `N`、`W`、`S`、`E` 组成且长度为 $N$ 的字符串 $S$,在时刻 $t=1,2,\dots,N$ 时,将按顺序发生以下现象: - 风吹过时,当前存在的所有烟雾将按以下规则移动: - 若 $S$ 的第 $t$ 个字符为 `N`,则单元格 $(r, c)$ 的烟雾移动到 $(r-1, c)$。 - 若 $S$ 的第 $t$ 个字符为 `W`,则单元格 $(r, c)$ 的烟雾移动到 $(r, c-1)$。 - 若 $S$ 的第 $t$ 个字符为 `S`,则单元格 $(r, c)$ 的烟雾移动到 $(r+1, c)$。 - 若 $S$ 的第 $t$ 个字符为 `E`,则单元格 $(r, c)$ 的烟雾移动到 $(r, c+1)$。 - 若此时单元格 $(0, 0)$ 没有烟雾,则在该位置生成新的烟雾。 高桥君位于坐标 $(R, C)$ 处。 对于每个整数 $1 \leq t \leq N$,请判断在时刻 $t+0.5$ 时单元格 $(R, C)$ 是否存在烟雾,并按输出格式要求输出结果。

输入格式

输入通过标准输入给出,格式如下: > $N$ $R$ $C$ > $S$

输出格式

将答案作为由 $N$ 个 `0` 和 `1` 组成的字符串输出。 输出字符串的第 $t$ 个字符 ($1 \leq t \leq N$) 应满足以下规则: - 若时刻 $t+0.5$ 时单元格 $(R, C)$ 存在烟雾,则为 `1` - 若时刻 $t+0.5$ 时单元格 $(R, C)$ 不存在烟雾,则为 `0`

说明/提示

### 约束条件 - $N$ 是 $1$ 以上 $200000$ 以下的整数 - $S$ 是由 `N`、`W`、`S`、`E` 组成且长度为 $N$ 的字符串 - $R, C$ 是 $-N$ 以上 $N$ 以下的整数 - $(R, C) \neq (0, 0)$ ### 样例解释 1 在时刻 $1.5$、$2.5$、$4.5$、$6.5$ 时,单元格 $(-2, 1)$ 不存在烟雾;在时刻 $3.5$、$5.5$ 时存在烟雾。因此输出 `001010`。 图示中以篝火所在的单元格 $(0, 0)$ 为基准: - 若 $r < 0$,则单元格 $(r, c)$ 位于上方 $|r|$ 格 - 若 $r \geq 0$,则单元格 $(r, c)$ 位于下方 $r$ 格 - 若 $c < 0$,则单元格 $(r, c)$ 位于左侧 $|c|$ 格 - 若 $c \geq 0$,则单元格 $(r, c)$ 位于右侧 $c$ 格 各时刻的网格状态如下(以下为原题图片链接,此处保留描述): - 时刻 $0.5$:![](https://img.atcoder.jp/abc398/pmRbLy1F_D_t0.png) - 时刻 $1.5$:![](https://img.atcoder.jp/abc398/pmRbLy1F_D_t1.png) - 时刻 $2.5$:![](https://img.atcoder.jp/abc398/pmRbLy1F_D_t2.png) - 时刻 $3.5$:![](https://img.atcoder.jp/abc398/pmRbLy1F_D_t3.png) - 时刻 $4.5$:![](https://img.atcoder.jp/abc398/pmRbLy1F_D_t4.png) - 时刻 $5.5$:![](https://img.atcoder.jp/abc398/pmRbLy1F_D_t5.png) - 时刻 $6.5$:![](https://img.atcoder.jp/abc398/pmRbLy1F_D_t6.png) 翻译由 DeepSeek R1 完成