
Given an arbitrary unweighted rooted tree which consists of N nodes.
The goal of the problem is to find largest distance between two nodes in a tree.
Distance between two nodes is a number of edges on a path between the nodes (there will be a unique path between any pair of nodes since it is a tree).
The nodes will be numbered 0 through N - 1.
The tree is given as an array A, there is an edge between nodes A[i] and i (0 <= i < N). Exactly one of the i's will have A[i] equal to -1, it will be root node.
Problem Constraints
1 <= N <= 40000
Input Format
First and only argument is an integer array A of size N.
Output Format
Return a single integer denoting the largest distance between two nodes in a tree.
Example Input
Input 1:
A = [-1, 0, 0, 0, 3]
Example Output
Output 1: