CF581B.Luxurious Houses

传统题 时间 2000 ms 内存 256 MiB 5 尝试 1 已通过 1 标签

Luxurious Houses

题目描述

贝尔兰的首都有 nn 栋多层建筑。这座城市的建筑师非常有创意,因此所有的房子都被建在了一排。

我们将所有的房子从左到右依次编号,从 1 开始。如果一栋房子的楼层数严格大于所有编号比它大的房子的楼层数,那么这栋房子被认为是“豪华的”。换句话说,如果一栋房子的楼层数严格大于它右边所有房子的楼层数,则该房子是“豪华的”。在本题中,假定所有房子的楼层高度相同。

新的建筑师对于 nn 个问题很感兴趣,第 ii 个问题如下:“需要在第 ii 栋房子的楼上加几层,才能让它变成‘豪华的’?”(对于所有 1in1 \leq i \leq n)。请你帮助他解决这个任务。

请注意,所有这些问题都是互相独立的 —— 对于第 ii 栋房子的回答不会影响其他房子的答案(也就是说,并不会真正加层楼)。

输入格式

输入的第一行包含一个整数 nn1n1051 \leq n \leq 10^{5})—— 贝尔兰首都的房子数量。

第二行包含 nn 个用空格分隔的正整数 hih_i1hi1091 \leq h_i \leq 10^{9}),其中 hih_i 表示第 ii 栋房子的楼层数。

输出格式

输出 nn 个整数 a1,a2,...,ana_1, a_2, ..., a_n,其中 aia_i 表示要让第 ii 栋房子变成“豪华的”需要增加的楼层数。如果这栋房子已经是“豪华的”,无需增加楼层,则 ai=0a_i=0

所有房子的编号从左到右依次为 1 开始。

说明/提示

由 ChatGPT 5 翻译

样例

5
1 2 3 1 2
3 2 0 2 0 
4
3 2 1 4
2 3 4 0 

在线编程 IDE

建议全屏模式获得最佳体验