AT_abc382_f.[ABC382F] Falling Bars

提高+/省选-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

有一个 HH 行 WW 列的网格。我们用 (i,j)(i,j) 表示从上往下第 ii 行、从左往右第 jj 列的格子(1≤i≤H1\leq i\leq H,1≤j≤W1\leq j\leq W)。

在这个网格上放置了 NN 个编号为 11 到 NN 的横向长条。第 ii 个长条由 LiL_i 个 1×11\times 1 的方块横向相连组成,其最左端的方块最初位于格子 (Ri,Ci)(R_i,C_i)。也就是说,第 ii 个长条最初占据 (Ri,Ci), (Ri,Ci+1), …, (Ri,Ci+Li−1)(R_i,C_i),\ (R_i,C_i+1),\ \dots,\ (R_i,C_i+L_i-1) 这些格子。保证不存在被两个不同长条同时占据的格子。

当前时刻为 t=0t=0。对于所有可以表示为 t=0.5+nt=0.5+n 的时刻(nn 为非负整数),依次对 i=1,2,…,Ni=1,2,\dots,N 执行以下操作:

  • 如果第 ii 个长条没有在最底下的一行(即第 HH 行),并且它所占据的每个格子的正下方格子都没有被任何长条占据,则第 ii 个长条整体向下移动一格。也就是说,如果此时第 ii 个长条占据 (r,Ci),(r,Ci+1),…,(r,Ci+Li−1)(r,C_i),(r,C_i+1),\dots,(r,C_i+L_i-1)(r<Hr<H),且对于所有 j (0≤j≤Li−1)j\ (0\leq j\leq L_i-1),格子 (r+1,Ci+j)(r+1,C_i+j) 都没有被其他长条占据,则第 ii 个长条占据的格子变为 (r+1,Ci),(r+1,Ci+1),…,(r+1,Ci+Li−1)(r+1,C_i),(r+1,C_i+1),\dots,(r+1,C_i+L_i-1)。
  • 否则,不进行任何操作。

在 t=10100t=10^{100} 时,第 ii 个长条最终占据的格子为 (Ri′,Ci), (Ri′,Ci+1), …, (Ri′,Ci+Li−1)(R'_i,C_i),\ (R'_i,C_i+1),\ \dots,\ (R'_i,C_i+L_i-1)。请你求出 R1′,R2′,…,RN′R'_1,R'_2,\dots,R'_N。

输入格式

输入按以下格式从标准输入给出。

HH WW NN
R1R_1 C1C_1 L1L_1
R2R_2 C2C_2 L2L_2
⋮\vdots
RNR_N CNC_N LNL_N

输出格式

输出 NN 行。第 ii 行输出 Ri′R'_i。

输入输出样例

  • 输入#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×1051\leq H,W \leq 2\times 10^5
  • 1≤N≤2×1051\leq N \leq 2\times 10^5
  • 1≤Ri≤H1\leq R_i\leq H
  • 1≤Ci≤W1\leq C_i\leq W
  • 1≤Li≤W−Ci+11\leq L_i\leq W-C_i+1
  • 在给定的初始状态下,不存在被两个不同长条同时占据的格子
  • 输入均为整数

样例解释 1

下图从左到右分别表示 t=0,1,2t=0,1,2 时的网格状态。带颜色的长方形表示各个长条,长方形内的数字为该长条的编号。

网格状态的变化如下所述:

  • t=0.5t=0.5:

    • i=1i=1:第 1 个长条下方的 (2,2),(2,3),(2,4)(2,2),(2,3),(2,4) 中,(2,2)(2,2) 被第 3 个长条占据,(2,4)(2,4) 被第 4 个长条占据,因此不移动。
    • i=2i=2:第 2 个长条下方的 (4,2),(4,3)(4,2),(4,3) 都没有被其他长条占据,因此整体下移一格。
    • i=3i=3:第 3 个长条下方的 (3,1),(3,2)(3,1),(3,2) 都没有被其他长条占据,因此整体下移一格。
    • i=4i=4:第 4 个长条下方的 (3,4)(3,4) 没有被其他长条占据,因此整体下移一格。
  • t=1.5t=1.5:

    • i=1i=1:第 1 个长条下方的 (2,2),(2,3),(2,4)(2,2),(2,3),(2,4) 都没有被其他长条占据,因此整体下移一格。
    • i=2i=2:第 2 个长条已在最底下一行,不移动。
    • i=3i=3:第 3 个长条下方的 (4,1),(4,2)(4,1),(4,2) 中,(4,2)(4,2) 被第 2 个长条占据,因此不移动。
    • i=4i=4:第 4 个长条下方的 (4,4)(4,4) 没有被其他长条占据,因此整体下移一格。
  • t=2.5,3.5,…t=2.5,3.5,\dots 时,没有任何长条能整体下移,因此 t=10100t=10^{100} 时网格状态与 t=2t=2 时相同(即上图最右侧状态)。

因此,R1′=2,R2′=4,R3′=3,R4′=4R'_1=2,R'_2=4,R'_3=3,R'_4=4。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页