开始: 2025-04-27 00:00:00

(24-25赛季)稠州常规赛21

结束: 2025-05-01 00:00:00
当前  2025-05-10 20:20:10  类型: IOI  状态: 已经结束 

P2. 修改数列
描述

给定一个包含 N 个非负整数的数组 aa_1, a_2, \dots, a_N1\le N\le 2\cdot 10^50\le a_i\le N)。在一次操作中,你可以将 a 的任一元素修改为任意非负整数。

一个数组的 mex 是它不包含的最小非负整数。对于范围 0N 内的每一个 i,计算使 a 的 mex 等于 i 所需要的最小操作次数。


输入

输入的第一行包含 N

以下一行包含 a_1,a_2,\dots, a_N


输出

对于范围 0N 内的每一个 i 输出一行,包含对于 i 的最小操作次数。注意,a 的 mex 对于范围 0N 内的任意 i 值都是可以通过修改取到的。

样例

输入

4
2 2 2 0

输出

1
0
3
1
2
提示

样例 1 解释:


- 为使 a 的 mex 等于 0,我们可以将 a_4 修改为 3(或任何正整数)。在得到的数组 [2, 2, 2, 3] 中,0 是数组不包含的最小非负整数,因此 0 是数组的 mex。

- 为使 a 的 mex 等于 1,我们不需要进行任何修改,因为 1 已经是 a = [2, 2, 2, 0] 中不包含的最小非负整数。

- 为使 a 的 mex 等于 2,我们需要修改 a 的前三个元素。例如,我们可以将 a 修改为 [3, 1, 1, 0]


- 测试点 2\sim 6N\le 10^3

- 测试点 7\sim 11:没有额外限制。


提交

题目参数
时间限制 1 秒
内存限制 128 MB
提交