#ATagc009b. [AGC009B] Tournament

[AGC009B] Tournament

题目描述

NN 个人参加了一场比赛。这场比赛采用淘汰赛制,总共进行了 N1N-1 场比赛。由于各种原因,这个淘汰赛的赛程并不一定对所有参赛者都是公平的。也就是说,每个人为了获得冠军所需的胜场数并不一定相同。淘汰赛的结构将在题目末尾正式定义。

每场比赛必定有一方获胜,另一方失败,最终未曾输过的那个人获得冠军。

下图是一个淘汰赛的例子:

每个人编号为 11NN,其中 11 号选手获得了冠军,除了冠军以外的每个选手 ii2iN2 \leq i \leq N)都在与 aia_i 号选手的比赛中输掉了比赛。

淘汰赛的深度定义为:对于所有选手,为了获得冠军所需的胜场数的最大值。

请你求出可能的最小淘汰赛深度。

淘汰赛的结构正式定义如下。在第 ii 场比赛中:

  • 由预先指定的两名尚未参加过比赛的选手进行比赛;
  • 或由预先指定的一名尚未参加过比赛的选手与第 jj 场比赛(j<ij < i)的获胜者进行比赛;
  • 或由预先指定的第 jj 场(j<ij < i)和第 kk 场(k<i,jkk < i, j \neq k)的获胜者进行比赛。

上述三种情况中任选其一的两人进行比赛。只要无论比赛结果如何,都不会出现已经输过比赛的人再次参赛的情况,这样的结构就称为淘汰赛。

输入格式

输入通过标准输入给出,格式如下:

NN a2a_2 a3a_3 ... aNa_N

输出格式

输出可能的最小淘汰赛深度。

样例 1

输入

5
1
1
2
4

输出

3

样例 2

输入

7
1
2
1
3
1
4

输出

3

样例 3

输入

4
4
4
1

输出

3

说明/提示

限制条件

  • 2N1052 \leq N \leq 10^5
  • 1aiN (2iN)1 \leq a_i \leq N\ (2 \leq i \leq N)
  • 存在与输入比赛结果相符的淘汰赛结构

样例解释 1

以下是满足条件的比赛结果:

  • 第 1 场比赛,4 号与 5 号选手对战,4 号获胜
  • 第 2 场比赛,2 号与 4 号选手对战,2 号获胜
  • 第 3 场比赛,1 号与 3 号选手对战,1 号获胜
  • 第 4 场比赛,1 号与 2 号选手对战,1 号获胜

在这个淘汰赛中,5 号选手若要获得冠军需要赢下 3 场比赛,因此淘汰赛的深度为 3。反之,不存在深度不超过 2 且满足条件的淘汰赛,因此输出 3。

由 ChatGPT 4.1 翻译