QOJ.ac

QOJ

Limite de temps : 2.5 s Limite de mémoire : 1024 MB Points totaux : 100

#11638. 棋子游戏

Statistiques

如果你玩过足够久的俄罗斯方块,你可能体验过“俄罗斯方块效应”——即使在停止游戏后,依然能看到下落的方块。为了专注于解决问题并避免此类干扰,我们考虑该游戏的一个简化版本。

游戏在一个由方格组成的网格棋盘上进行。棋盘的列从左到右依次编号。棋盘向右和向上无限延伸。每个格子要么是空的,要么是填满的,初始时所有格子均为空。

给定一个包含 $N$ 个矩形方块的序列,方块会依次落入棋盘。方块的大小各不相同。一个大小为 $L$ 的方块要么是竖直的($L \times 1$ 个格子),要么是水平的($1 \times L$ 个格子)。当一个方块在指定的列落下时,它从所有当前已填满格子的上方开始,垂直下落,直到到达棋盘底部或落在已填满的格子上方。一旦方块落地,它将填满其最终占据的格子。

每次方块落地后,如果没有任何空格子上方存在已填满的格子,则游戏被认为是安全的(safe);否则游戏是不安全的(unsafe),此时违规的方块会从棋盘上移除,游戏继续进行下一个方块,就像该方块从未落下过一样。

在下方的示例中(对应第一个样例输入),当第二个方块落地时,游戏变得不安全,因此该方块被移除,后续方块使游戏保持安全。

给定方块序列及其下落位置,你的任务是确定对于每个方块,它在落地后是否会使棋盘变得不安全。

输入格式

第一行包含一个整数 $N$ ($1 \le N \le 2 \cdot 10^5$),表示方块的数量。

接下来的 $N$ 行,每行描述一个方块,包含一个字符 $C$ 和两个整数 $L$ 和 $P$ ($1 \le L \le 10^9$ 且 $1 \le P \le 10^{18}$),分别代表方块的类型、长度以及下落的位置。对于竖直方块,$C$ 为字符 “|”(竖线),方块占据 $L \times 1$ 个格子,并从第 $P$ 列落下。对于水平方块,$C$ 为字符 “-”(连字符),方块占据 $1 \times L$ 个格子,并从第 $P, P+1, \dots, P+L-1$ 列落下。

输出格式

输出一行长度为 $N$ 的字符串。如果第 $i$ 个方块落地后游戏立即变得不安全,则字符串的第 $i$ 个字符必须为大写字母 “U”,否则为大写字母 “S”。

样例

输入 1

4
| 3 1
- 2 1
| 3 2
- 2 1

输出 1

SUSS

输入 2

4
| 3 1
| 2 3
| 1 2
- 2 2

输出 2

SSSU

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.