将第 10~12 行与第 13~15 行两个 if 语句的顺序交换后,程序的输出结果不受影响。( )
#include <iostream>
using namespace std;
int n, fa[1000007], f[1000007], 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;
}
正确
错误