AT_abc359_e.[ABC359E] Water Tank

普及+/提高

通过率:0%

AC君温馨提醒

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

题目描述

给定一个长度为 $ N $ 的正整数序列 $ H=(H_1,H_2,\dotsc,H_N) $。

存在一个长度为 $ N+1 $ 的非负整数序列 $ A=(A_0,A_1,\dotsc,A_N) 。初始时,。初始时, A_0=A_1=\dotsb=A_N=0 $。

对 $ A $ 重复执行以下操作:

  1. 将 $ A_0 $ 的值增加 $ 1 $。
  2. 按顺序对 $ i=1,2,\ldots,N $ 执行以下操作:
    • 如果 $ A_{i-1}>A_i $ 且 $ A_{i-1}>H_i $,则将 $ A_{i-1} $ 的值减少 $ 1 $,并将 $ A_i $ 的值增加 $ 1 $。

对于每个 $ i=1,2,\ldots,N $,求首次满足 $ A_i>0 $ 时的操作次数。

输入格式

输入通过标准输入给出,格式如下:

$ N $
$ H_1 $ $ H_2 $ $ \dotsc $ $ H_N $

输出格式

在一行中输出 $ i=1,2,\ldots,N $ 对应的答案,以空格分隔。

输入输出样例

  • 输入#1

    5
    3 1 4 1 5

    输出#1

    4 5 13 14 26
  • 输入#2

    6
    1000000000 1000000000 1000000000 1000000000 1000000000 1000000000

    输出#2

    1000000001 2000000001 3000000001 4000000001 5000000001 6000000001
  • 输入#3

    15
    748 169 586 329 972 529 432 519 408 587 138 249 656 114 632

    输出#3

    749 918 1921 2250 4861 5390 5822 6428 6836 7796 7934 8294 10109 10223 11373

说明/提示

背景故事

有一个长长的水箱,内部等间距地放置了高度不同的隔板。高桥君想知道,当他从水箱的一端持续注水时,水首次到达每个隔板分隔的区域的具体时刻。

约束条件

  • $ 1\leq N\leq2\times10^5 $
  • $ 1\leq H_i\leq10^9\ (1\leq i\leq N) $
  • 输入均为整数

样例解释 #1

初始的 $ 5 $ 次操作如下所示。每一行对应一次操作,最左侧为第 $ 1 $ 步操作,其余为第 $ 2 $ 步操作。
图示
从图中可以看出,$ A_1>0 $ 首次成立是在第 $ 4 $ 次操作后,$ A_2>0 $ 首次成立是在第 $ 5 $ 次操作后。类似地,$ A_3,A_4,A_5 $ 对应的答案分别为 $ 13,14,26 $。因此,输出 4 5 13 14 26。

样例解释 #2

请注意,输出的值可能超出 $ 32\operatorname{bit} $ 整数的范围。

翻译由 DeepSeek V3 完成

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

首页