CF1501B Napoleon Cake
题目描述
这周 Arkady 想做一些煎饼(以遵循古老的传统),并出一道关于煎饼的题目。但他随后想起,只有在某家特定的 IT 公司工作时才能出关于堆叠煎饼的题目,于是他决定改做拿破仑蛋糕。
制作拿破仑蛋糕,首先需要烤出 $n$ 层干蛋糕,然后将它们一层层叠放在一起,并在每层之间加入一些奶油。Arkady 从一个空盘子开始,进行了 $n$ 次如下操作:
- 在蛋糕堆顶放上一层新的蛋糕;
- 在放好第 $i$ 层后,在蛋糕堆顶倒入 $a_i$ 单位的奶油。
当在蛋糕堆顶倒入 $x$ 单位奶油时,蛋糕堆顶的 $x$ 层蛋糕会被奶油浸湿。如果堆中不足 $x$ 层,则所有层都会被浸湿,多余的奶油被浪费。如果 $x=0$,则没有任何一层被浸湿。

图片展示了样例的第一个测试用例。请帮助 Arkady 判断,最终哪些蛋糕层会被奶油浸湿,哪些不会。
输入格式
每个测试点包含多个测试用例。第一行包含一个整数 $t$($1 \le t \le 20000$),表示测试用例的数量。接下来是每个测试用例的描述。
每个测试用例的第一行包含一个整数 $n$($1 \le n \le 2 \times 10^5$),表示蛋糕的层数。
每个测试用例的第二行包含 $n$ 个整数 $a_1, a_2, \ldots, a_n$($0 \le a_i \le n$),表示每次放好第 $i$ 层后倒入的奶油量。
保证所有测试用例中 $n$ 的总和不超过 $2 \times 10^5$。
输出格式
对于每个测试用例,输出一行 $n$ 个整数。第 $i$ 个整数为 $1$ 表示从下往上数第 $i$ 层蛋糕最终被奶油浸湿,为 $0$ 表示没有被浸湿。
说明/提示
由 ChatGPT 4.1 翻译