给你一个由 个自然数(非负整数)组成的数组 ,我们定义一轮操作: 计算出当前数组的 ,随后,使得所有的 。换句话说,对于任意的 ,使得 。 小牛想知道你至少需要执行多少轮(也可以不执行)操作,才能使得数组 中的每个数都相同?如果无法使得数组 中的每个数都相同,则直接输出 。 整数数组的 定义为没有出现在数组中的最小非负整数。例如 、。
输入描述:
第一行输入一个整数  代表数组中的元素数量。 第二行输入 个整数  代表数组中的元素。


输出描述:
如果无法使得数组 中的每个数都相同,则直接输出 ;否则,输出一个整数,代表至少需要执行的轮数。
示例1

输入

6
0 1 2 3 4 5

输出

1

说明

\hspace{15pt}在这个样例中,第一轮数组的 \operatorname{mex}6,所以:
\hspace{23pt}\bullet\,对于第一个元素 0,使用 \max\{0,0-6\}=0 替换;
\hspace{23pt}\bullet\,对于第二个元素 1,使用 \max\{0,1-6\}=0 替换;
\hspace{23pt}\bullet\,对于第三个元素 2,使用 \max\{0,2-6\}=0 替换;
\hspace{23pt}\bullet\,对于第四个元素 3,使用 \max\{0,3-6\}=0 替换;
\hspace{23pt}\bullet\,对于第五个元素 4,使用 \max\{0,4-6\}=0 替换;
\hspace{23pt}\bullet\,对于第六个元素 5,使用 \max\{0,5-6\}=0 替换。
\hspace{15pt}得到数组 \{0,0,0,0,0,0\},满足题干条件。所以,至少需要执行 1 轮操作。
示例2

输入

5
3 1 2 4 5

输出

-1

说明

\hspace{15pt}在这个样例中,由于第一轮数组的 \operatorname{mex}0,所以无论执行多少次操作,数组都不会改变,所以无法使所有数变为相同值。
示例3

输入

6
0 1 3 4 7 9

输出

5

说明

\hspace{15pt}在这个样例中:
\hspace{23pt}\bullet\,第一轮操作:\operatorname{mex}=2,操作完后数组变为 \{0,0,1,2,5,7\}
\hspace{23pt}\bullet\,第二轮操作:\operatorname{mex}=3,操作完后数组变为 \{0,0,0,0,2,4\}
\hspace{23pt}\bullet\,第三轮操作:\operatorname{mex}=1,操作完后数组变为 \{0,0,0,0,1,3\}
\hspace{23pt}\bullet\,第四轮操作:\operatorname{mex}=2,操作完后数组变为 \{0,0,0,0,0,1\}
\hspace{23pt}\bullet\,第五轮操作:\operatorname{mex}=2,操作完后数组变为 \{0,0,0,0,0,0\}
\hspace{15pt}综上所述,至少需要执行 5 轮操作。
加载中...