P15101 [ICPC 2025 LAC] Game of Pieces

题目描述

如果你玩过足够久的俄罗斯方块,你可能体验过俄罗斯方块效应——即使在停止游戏后,仍会看到下落的方块。为了专注于解决问题并避免这种干扰,我们将考虑一个简化版本的游戏。 游戏在一个由方格单元格组成的棋盘上进行。网格的列从左到右依次编号。棋盘向右和向上是无限的。每个单元格要么是空的,要么是被填充的,初始时所有单元格都是空的。 给定一个由 $N$ 个矩形方块组成的序列,这些方块被逐一放置到棋盘上。方块有不同的尺寸。一个尺寸为 $L$ 的方块要么是竖直的($L \times 1$ 个单元格),要么是水平的($1 \times L$ 个单元格)。当一个方块被放置到指定的列时,它从所有当前已被填充的单元格上方开始,垂直下落,直到触及棋盘底部或落到一个已被填充的单元格顶部。一旦方块落地,它将填充其最终占据的一组单元格。 每次一个方块落地后,如果没有任何空单元格的上方存在被填充的单元格,则认为游戏状态是 **安全的**;否则游戏状态是 **不安全的**,违规的方块将从棋盘上移除,游戏继续处理下一个方块,就好像它从未被放置过一样。 在下图中,对应第一个样例输入,游戏在第二个方块落地后变得不安全,因此该方块被移除,后续的方块保持游戏安全。 :::align{center} ![](https://cdn.luogu.com.cn/upload/image_hosting/zhs065dh.png) ::: 给定方块的序列及其放置位置,你的任务是确定每个方块在落地后是否会使棋盘变得不安全。

输入格式

第一行包含一个整数 $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”。

说明/提示

翻译由 DeepSeek V3 完成