CFCF2172J.Sliding Tiles

提高+/省选-

通过率:0%

AC君温馨提醒

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

题目描述

你有一个特殊的滑动谜题,棋盘为 n×nn \times n 的方格。这种谜题与标准滑动谜题略有不同:每对相邻的两列之间,在底部有一根高度为 hih_i(对于 1i<n1 \leq i < n)的竖直阻挡条。每个 hih_i 表示该阻挡条从底部向上延伸 hih_i 行,在这些行中阻挡两个列之间瓷砖的移动。

棋盘上有若干瓷砖,每个瓷砖恰好占据一个格子。这些瓷砖可以在棋盘上自由滑动,除非被棋盘边界、竖直阻挡条(取决于其高度)或其他瓷砖所阻挡。

该谜题允许两种类型的倾斜操作:

  • 向右倾斜:所有瓷砖尽可能向右滑动。
  • 向下倾斜:所有瓷砖尽可能向下滑动。

在这两种操作中,所有瓷砖同时移动,只有当被棋盘边界、阻挡条或其他瓷砖阻挡时才会停止。

图 1:样例输入 1 的说明图。定义一个“组合操作”为:先将棋盘向右倾斜,再向下倾斜。

最初,第 ii 列从底部开始堆有 aia_i 个瓷砖。你恰好对棋盘执行一次组合操作。操作结束后,求每一列最终剩余的瓷砖数。

输入格式

第一行包含一个整数 nn,表示棋盘的大小。

第二行包含 nn 个整数 a1,a2,,ana_1,a_2,\ldots,a_n,其中 aia_i 表示第 ii 列最初的瓷砖数量。

第三行包含 n1n-1 个整数 h1,h2,,hn1h_1,h_2,\ldots,h_{n-1},其中 hih_i 表示第 ii 列和第 i+1i+1 列之间的阻挡条高度。

  • 2n5×1052 \leq n \leq 5 \times 10^5
  • 0ain0 \leq a_i \leq n
  • 0hin10 \leq h_i \leq n-1

输出格式

输出一行 nn 个数字,表示恰好执行一次组合操作后每一列的瓷砖数量。

输入输出样例

  • 输入#1

    5
    5 5 2 3 0
    3 0 4 1

    输出#1

    3 3 4 2 3
首页