#L4302. 「ROIR 2019 Day2」探险队

「ROIR 2019 Day2」探险队

题目描述

译自 ROI Regional 2019 Day2 T3. Экспедиция

计划派遣一支探险队前往邻近的星系。共有 nn 名候选人,编号从 11nn,需要从中选出探险队成员。组织者希望尽可能多地选出候选人参加探险。

在候选人中进行了一次调查,每个人可以指出一个他不愿意与之一起参加探险的候选人。对于第 ii 个候选人,调查结果是一个整数 aia_{i},表示他不愿意与之一起参加探险的候选人的编号;如果 ii 号候选人愿意与任何人一起参加探险,则 ai=1a_{i} = -1

现在,组织者需要决定谁将参加探险队。决定是这样的:如果某个候选人 ii 被选中,并且 ai1a_{i} \neq -1,那么编号为 aia_{i} 的候选人不能被选中。组织者希望选出最多数量的探险队成员。

编写一个程序,根据给定的候选人调查结果,确定可以派遣的最大候选人数。

输入格式

第一行输入包含一个整数 nn (1n31051 \leq n \leq 3\cdot 10^5),表示候选人数。

接下来的 nn 行中,每行包含一个整数 aia_{i}ai=1a_{i} = -11ain1 \leq a_{i} \leq n, aiia_{i} \neq i),表示第 ii 个候选人的调查结果。

输出格式

输出一个整数,表示可以派遣的最大候选人数。

样例 1

输入: 44 22 44 22 11

输出: 22

样例 2

输入: 33 22 1-1 22

输出: 22

数据范围与提示

详细子任务附加限制及分值如下表所示。

子任务 分值 附加限制 子任务依赖
11 1919 n20n \leq 20
22 1010 a1=1a_{1} = -1,对于 i>1i > 1ai=i1a_{i} = i-1
33 1515 对于所有 iiai<ia_{i} < i 22
44 1313 1n20001 \leq n \leq 2000 11
55 4343 1n31051 \leq n \leq 3\cdot 10^5 1,2,3,41,2,3,4