AT_abc382_f.[ABC382F] Falling Bars
提高+/省选-
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
有一个 H 行 W 列的网格。我们用 (i,j) 表示从上往下第 i 行、从左往右第 j 列的格子(1≤i≤H,1≤j≤W)。
在这个网格上放置了 N 个编号为 1 到 N 的横向长条。第 i 个长条由 Li 个 1×1 的方块横向相连组成,其最左端的方块最初位于格子 (Ri,Ci)。也就是说,第 i 个长条最初占据 (Ri,Ci), (Ri,Ci+1), …, (Ri,Ci+Li−1) 这些格子。保证不存在被两个不同长条同时占据的格子。
当前时刻为 t=0。对于所有可以表示为 t=0.5+n 的时刻(n 为非负整数),依次对 i=1,2,…,N 执行以下操作:
- 如果第 i 个长条没有在最底下的一行(即第 H 行),并且它所占据的每个格子的正下方格子都没有被任何长条占据,则第 i 个长条整体向下移动一格。也就是说,如果此时第 i 个长条占据 (r,Ci),(r,Ci+1),…,(r,Ci+Li−1)(r<H),且对于所有 j (0≤j≤Li−1),格子 (r+1,Ci+j) 都没有被其他长条占据,则第 i 个长条占据的格子变为 (r+1,Ci),(r+1,Ci+1),…,(r+1,Ci+Li−1)。
- 否则,不进行任何操作。
在 t=10100 时,第 i 个长条最终占据的格子为 (Ri′,Ci), (Ri′,Ci+1), …, (Ri′,Ci+Li−1)。请你求出 R1′,R2′,…,RN′。
输入格式
输入按以下格式从标准输入给出。
H W N
R1 C1 L1
R2 C2 L2
⋮
RN CN LN
输出格式
输出 N 行。第 i 行输出 Ri′。
输入输出样例
输入#1
4 4 4 1 2 3 3 2 2 2 1 2 2 4 1
输出#1
2 4 3 4
输入#2
382 382 3 3 3 3 8 8 8 2 2 2
输出#2
382 382 381
输入#3
5 10 8 2 2 1 4 3 1 4 8 2 1 2 2 2 5 3 5 4 3 4 5 2 1 5 2
输出#3
5 5 5 4 3 5 4 2
说明/提示
限制条件
- 1≤H,W≤2×105
- 1≤N≤2×105
- 1≤Ri≤H
- 1≤Ci≤W
- 1≤Li≤W−Ci+1
- 在给定的初始状态下,不存在被两个不同长条同时占据的格子
- 输入均为整数
样例解释 1
下图从左到右分别表示 t=0,1,2 时的网格状态。带颜色的长方形表示各个长条,长方形内的数字为该长条的编号。

网格状态的变化如下所述:
-
t=0.5:
- i=1:第 1 个长条下方的 (2,2),(2,3),(2,4) 中,(2,2) 被第 3 个长条占据,(2,4) 被第 4 个长条占据,因此不移动。
- i=2:第 2 个长条下方的 (4,2),(4,3) 都没有被其他长条占据,因此整体下移一格。
- i=3:第 3 个长条下方的 (3,1),(3,2) 都没有被其他长条占据,因此整体下移一格。
- i=4:第 4 个长条下方的 (3,4) 没有被其他长条占据,因此整体下移一格。
-
t=1.5:
- i=1:第 1 个长条下方的 (2,2),(2,3),(2,4) 都没有被其他长条占据,因此整体下移一格。
- i=2:第 2 个长条已在最底下一行,不移动。
- i=3:第 3 个长条下方的 (4,1),(4,2) 中,(4,2) 被第 2 个长条占据,因此不移动。
- i=4:第 4 个长条下方的 (4,4) 没有被其他长条占据,因此整体下移一格。
-
t=2.5,3.5,… 时,没有任何长条能整体下移,因此 t=10100 时网格状态与 t=2 时相同(即上图最右侧状态)。
因此,R1′=2,R2′=4,R3′=3,R4′=4。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?