using System; using static System.Console; using System.Linq; using System.Collections.Generic; class Program { static int NN => int.Parse(ReadLine()); static int[] NList => ReadLine().Split().Select(int.Parse).ToArray(); static int[][] NArr(long n) => Enumerable.Repeat(0, (int)n).Select(_ => NList).ToArray(); public static void Main() { Solve(); } static void Solve() { var n = NN; var a = NList; var tree = new List[n]; for (var i = 0; i < tree.Length; ++i) tree[i] = new List(); for (var i = 0; i < a.Length; ++i) { tree[a[i]].Add(i + 1); } var ft = new AtCoder.FenwickTree(n); var ans = 0L; DFS(0, tree, ft, ref ans); WriteLine(ans); } static void DFS(int cur, List[] tree, AtCoder.FenwickTree ft, ref long ans) { ans += ft.Sum(cur); ft.Add(cur, 1); foreach (var next in tree[cur]) { DFS(next, tree, ft, ref ans); } ft.Add(cur, -1); } }