#9941. [GDKOI2024 普及组] 读书

[GDKOI2024 普及组] 读书

题目描述

Zayin 是一个热爱读书的学生。

最近,Zayin 收到了一本有 nn 个章节的书,其中每个章节 ii 都有一个限制:她必须至少阅读了其他 aia_i 个章节,才能够获取足够的智慧来读懂该章节。

每天,Zayin 都会从头到尾开始阅读这本书。对于她还不能读懂的章节(由于限制)或是已经阅读过的章节,Zayin 会在那天跳过它们。

现在,Zayin 想要知道至少需要多少天才能阅读完所有的 nn 个章节。

输入格式

第一行包含一个整数 nn,表示章节数。

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n,表示每个章节的限制。

输出格式

输出一行包含一个整数,表示最少需要的天数。如果 Zayin 无法阅读完所有的 nn 个章节,输出 1-1

样例

10
3 4 0 6 1 1 0 8 6 3
2

样例解释
第一天可以阅读第 3 章和第 7 章(ai=0a_i=0),之后满足部分章节限制;第二天可阅读剩余所有章节,故最少需要 22 天。

数据范围与提示

本题使用子任务捆绑测试。

对于所有测试数据,保证 1n5×1051 \leq n \leq 5 \times 10^50ai<n0 \leq a_i < n

  • Subtask 1(10%):1n101 ≤ n ≤ 10
  • Subtask 2(10%):1n5001 ≤ n ≤ 500
  • Subtask 3(20%):1n50001 ≤ n ≤ 5000
  • Subtask 4(20%):1n1051 ≤ n ≤ 10^5
  • Subtask 5(40%):1n5×1051 ≤ n ≤ 5 \times 10^5