Ehab and Prefix MEXs

题意翻译

### 题目描述 给出一个长度为 $n$ 的序列 $A$,你需要找到一个长度为 $n$ 的序列 $B$,满足 $A_i=mex(\{B_1,B_2,\dots,B_i\})$。 其中 $mex$ 函数的结果是最小的未出现在集合中的非负整数。 ### 输入格式 第一行一个整数 $n$。 之后一行 $n$ 个整数,表示给出的序列 $A$。 保证 $1\le n\le10^5$,$0\le a_i\le i$,对于 $1\le i<n$,$a_i\le a_{i+1}$。 ### 输出格式 如果序列 $B$ 不存在,输出 `-1`。 否则输出一行 $n$ 个整数表示你找到的 $B$,若有多个满足条件的序列,输出任意一个。

题目描述

Given an array $ a $ of length $ n $ , find another array, $ b $ , of length $ n $ such that: - for each $ i $ $ (1 \le i \le n) $ $ MEX(\{b_1 $ , $ b_2 $ , $ \ldots $ , $ b_i\})=a_i $ . The $ MEX $ of a set of integers is the smallest non-negative integer that doesn't belong to this set. If such array doesn't exist, determine this.

输入输出格式

输入格式


The first line contains an integer $ n $ ( $ 1 \le n \le 10^5 $ ) — the length of the array $ a $ . The second line contains $ n $ integers $ a_1 $ , $ a_2 $ , $ \ldots $ , $ a_n $ ( $ 0 \le a_i \le i $ ) — the elements of the array $ a $ . It's guaranteed that $ a_i \le a_{i+1} $ for $ 1\le i < n $ .

输出格式


If there's no such array, print a single line containing $ -1 $ . Otherwise, print a single line containing $ n $ integers $ b_1 $ , $ b_2 $ , $ \ldots $ , $ b_n $ ( $ 0 \le b_i \le 10^6 $ ) If there are multiple answers, print any.

输入输出样例

输入样例 #1

3
1 2 3

输出样例 #1

0 1 2

输入样例 #2

4
0 0 0 2

输出样例 #2

1 3 4 0

输入样例 #3

3
1 1 3

输出样例 #3

0 2 1

说明

In the second test case, other answers like $ [1,1,1,0] $ , for example, are valid.