#include <iostream>using namespace std;int n, fa[100007], f[100007], ans;int main() { cin >> n; for (int i = 2; i <= n; ++i) { cin >> fa[i]; } for (int i = n; i >= 2; --i) { if (f[fa[i]] + f[i] + 1 > ans) { ans = f[fa[i]] + f[i] + 1; } if (f[i] + 1 > f[fa[i]]) { f[fa[i]] = f[i] + 1; } } cout << ans << endl; return 0;}说明:输入第一行为结点个数 ,第二行为 个整数,依次表示结点 2— 的父结点编号,满足 且 ,根结点为 1。
当 , 时,程序输出 4。( )
程序输出前,f[1] 的值一定等于 ans 的值。( )
将第 10—12 行与第 13—15 行两个 if 语句的顺序交换后,程序输出结果不受影响。( )
程序输出的 ans 表示的是( )。
当 , 时,输出为( )。
当 ,满足输出为 9 的合法输入种类数为( )。