

Time Limit: 2 sec / Memory Limit: 1024 MB
配点 : 400 点
問題文
N 個のレンガが横一列に並んでいます。
左から i~(1 \leq i \leq N) 番目のレンガには、整数 a_i が書かれています。
あなたはこのうち N - 1 個以下の任意のレンガを選んで砕くことができます。
その結果、K 個のレンガが残っているとします。このとき、任意の整数 i~(1 \leq i \leq K) について、残っているレンガの中で左から i 番目のものに書かれた整数が i であるとき、すぬけさんは満足します。
すぬけさんが満足するために砕く必要のあるレンガの最小個数を出力してください。もし、どのように砕いてもそれが不可能な場合、代わりに -1
を出力してください。
制約
- 入力は全て整数である。
- 1 \leq N \leq 200000
- 1 \leq a_i \leq N
入力
入力は以下の形式で標準入力から与えられる。
N a_1 a_2 ... a_N
出力
すぬけさんが満足するために砕く必要のあるレンガの最小個数を出力せよ。もし、どのように砕いてもそれが不可能な場合、代わりに -1
を出力せよ。
入力例 1
3 2 1 2
出力例 1
1
一番左のレンガ 1 個を砕くと、残ったレンガに書かれた整数は左から 1, 2 となります。
このとき、すぬけさんは満足します。
入力例 2
3 2 2 2
出力例 2
-1
この場合、すぬけさんが満足するレンガの砕き方は存在しません。
入力例 3
10 3 1 4 1 5 9 2 6 5 3
出力例 3
7
入力例 4
1 1
出力例 4
0
レンガを 1 つも砕かなくていい場合もあります。
Score : 400 points
Problem Statement
We have N bricks arranged in a row from left to right.
The i-th brick from the left (1 \leq i \leq N) has an integer a_i written on it.
Among them, you can break at most N-1 bricks of your choice.
Let us say there are K bricks remaining. Snuke will be satisfied if, for each integer i (1 \leq i \leq K), the i-th of those brick from the left has the integer i written on it.
Find the minimum number of bricks you need to break to satisfy Snuke's desire. If his desire is unsatisfiable, print -1
instead.
Constraints
- All values in input are integers.
- 1 \leq N \leq 200000
- 1 \leq a_i \leq N
Input
Input is given from Standard Input in the following format:
N a_1 a_2 ... a_N
Output
Print the minimum number of bricks that need to be broken to satisfy Snuke's desire, or print -1
if his desire is unsatisfiable.
Sample Input 1
3 2 1 2
Sample Output 1
1
If we break the leftmost brick, the remaining bricks have integers 1 and 2 written on them from left to right, in which case Snuke will be satisfied.
Sample Input 2
3 2 2 2
Sample Output 2
-1
In this case, there is no way to break some of the bricks to satisfy Snuke's desire.
Sample Input 3
10 3 1 4 1 5 9 2 6 5 3
Sample Output 3
7
Sample Input 4
1 1
Sample Output 4
0
There may be no need to break the bricks at all.