AT_abc148_d.[ABC148D] Brick Break

入门

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

NN 块砖头横向排成一列。

从左起第 ii 块砖头上写有整数 aia_i

你可以选择至多 N1N-1 块任意的砖头进行敲碎。

结果,假设剩下 KK 块砖头。此时,如果对于任意整数 i (1iK)i\ (1 \leq i \leq K),剩下的砖头中从左起第 ii 块上写的整数恰好为 ii,那么“すぬけさん”会感到满意。

请输出为了让“すぬけさん”满意,最少需要敲碎的砖头数。如果无论怎么敲碎都无法满足条件,则输出 1-1

输入格式

输入以以下格式从标准输入读入。

NN a1a_1 a2a_2 \ldots aNa_N

输出格式

请输出为了让“すぬけさん”满意,最少需要敲碎的砖头数。如果无论如何都无法满足条件,则输出 1-1

输入输出样例

  • 输入#1

    3
    2 1 2

    输出#1

    1
  • 输入#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

说明/提示

限制条件

  • 输入均为整数。
  • 1N2000001 \leq N \leq 200000
  • 1aiN1 \leq a_i \leq N

样例解释 1

如果敲碎最左边的 11 块砖头,剩下的砖头上写的整数从左到右为 1122。此时,“すぬけさん”会感到满意。

样例解释 2

在这种情况下,没有任何一种敲碎砖头的方法能让“すぬけさん”满意。

样例解释 4

有时也可以一块砖头都不敲碎。

首页