atcoder#ARC086C. [ARC086E] Smuggling Marbles

[ARC086E] Smuggling Marbles

Score : 10001000 points

Problem Statement

Snuke has a rooted tree with N+1N+1 vertices. The vertices are numbered 00 through NN, and Vertex 00 is the root of the tree. The parent of Vertex ii (1iN)(1 \leq i \leq N) is Vertex pip_i.

Besides this tree, Snuke also has an box which is initially empty and many marbles, and playing with them. The play begins with placing one marble on some of the vertices, then proceeds as follows:

  1. If there is a marble on Vertex 00, move the marble into the box.
  2. Move each marble from the vertex to its parent (all at once).
  3. For each vertex occupied by two or more marbles, remove all the marbles from the vertex.
  4. If there exists a vertex with some marbles, go to Step 1. Otherwise, end the play.

There are 2N+12^{N+1} ways to place marbles on some of the vertices. For each of them, find the number of marbles that will be in the box at the end of the play, and compute the sum of all those numbers modulo 1,000,000,0071,000,000,007.

Constraints

  • 1N<2×1051 \leq N < 2 \times 10^{5}
  • 0pi<i0 \leq p_i < i

Partial Scores

  • In the test set worth 400400 points, N<2,000N < 2{,}000.

Input

Input is given from Standard Input in the following format:

NN

p1p_1 p2p_2 ...... pNp_{N}

Output

Print the answer.

2
0 0
8

When we place a marble on both Vertex 11 and 22, there will be multiple marbles on Vertex 00 by step 2. In such a case, these marbles will be removed instead of being moved to the box.

5
0 1 1 0 4
96
31
0 1 0 2 4 0 4 1 6 4 3 9 7 3 7 2 15 6 12 10 12 16 5 3 20 1 25 20 23 24 23
730395550

Be sure to compute the sum modulo 1,000,000,0071,000,000,007.