Досяжність


Submit solution

Points: 100 (partial)
Time limit: 1.0s
Memory limit: 256M

Author:
Problem type

У вас є орієнтований граф з \(n\) вершинами, пронумерованими від \(1\) до \(n\), і \(n\) ребрами. Степінь виходу кожної вершини дорівнює \(1\), і ребро від вершини \(i\) вказує на вершину \(a_i\). Порахуйте кількість пар вершин \(u, v\), таких що вершина \(v\) досяжна з вершини \(u\).

Тут вершина \(v\) досяжна з вершини \(u\), якщо існує послідовність вершин \(w_0, w_1, ..., w_k\) довжиною \(k+1\), яка задовольняє наступним умовам.

  1. \(w_0 = u\).
  2. \(w_k = v\).
  3. Для кожного \(0 \le i < K\) існує ребро від вершини \(w_i\) до вершини \(w_{i+1}\).

Зокрема, якщо \(u = v\), то вершина завжди досяжна.

Input Specification

У першому рядку знаходиться число \(n\) (\(1 \le n \le 2 \cdot 10^5\)) - кількість вершин.

У другому рядку міститься \(n\) чисел \(a_i\) (\(1 \le a_i \le n\)).

Output Specification

Виведіть кількість шуканих пар.

Sample Input 1

4
2 1 1 4

Sample Output 1

8

Sample Input 2

5
2 4 3 1 2

Sample Output 2

14

Sample Input 3

10
6 10 4 1 5 9 8 6 5 1

Sample Output 3

41

Comments

There are no comments at the moment.