Олимпиадный тренинг

Задача . C. Метро Бергорода


Строительство метро в Бергороде подходит к концу! Президент Берляндии решил посетить этот город и взглянуть на новое метро своими глазами.

Метро состоит из n станций. Оно построено по всем правилам Бергородского Транспортного Закона:

  1. Для каждой станции i существует ровно один поезд, идущий от этой станции. Его конечная станция — pi, возможно, что pi = i;
  2. Для каждой станции i существует ровно одна станция j такая, что pj = i.

Президент рассмотрит выгодность метро после посещения. Выгодность — это количество таких упорядоченных пар (x, y), что посетитель начнет на станции x, а после, воспользовавшись несколькими поездами (возможно нулевым количеством), прибудет на станцию y (1 ≤ x, y ≤ n).

Мэр Бергорода считает, что если выгодность метро недостаточно высока, то Президент может заменить мэра в городе (разумеется, текущий мэр не хочет, чтобы это произошло). Перед посещением Президентом города мэр успеет перестроить некоторые части метро, таким образом, изменяя значения pi для не более чем двух станций метро. Конечно, нарушать Бергородский Транспортный Закон недопустимо, поэтому метро должно подчиняться Закону и после изменений.

Мэр хочет перестроить такие части метро, чтобы выгодность метро стала максимальной возможной. Помогите ему посчитать, какую максимальную выгодность он может получить.

Входные данные

В первой строке записано одно целое число n (1 ≤ n ≤ 100000) — количество станций.

Во второй строке записаны n целых чисел p1, p2, ..., pn (1 ≤ pi ≤ n) — текущая структура метро. Все эти числа различны.

Выходные данные

Выведите одно число — максимальное возможное значение выгодности.

Примечание

В первом примере мэр может поменять p2 на 3 и p3 на 1, тогда будет 9 пар: (1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3).

Во втором примере можно поменять p2 на 4 и p3 на 5.


Примеры
Входные данныеВыходные данные
1 3
2 1 3
9
2 5
1 5 4 3 2
17

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя