만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

주둔

면접 대비

시간 제한1초메모리 제한1024 MB

요약
각 지역에 병력을 배치하여 병력이 없는 이웃 지역 수의 합이 최대가 되는 값을 구합니다.
난이도

보통10점 중 6점

유형
동적 계획법, 그래프, 트리
정답자
아직 제출이 없습니다

문제

운전병 해찬이의 활약 덕분에 A국은 B국과의 전쟁에서 승리할 수 있었다. 그러나 A국도 전쟁으로 큰 피해를 입었기 때문에, A국은 언제 침략해 올지 모르는 B국에 대비하려고 군대를 재정비하려고 한다.

A국에는 NN개의 지역이 있다. 전쟁으로 무너진 교통망을 복구하기 위해 각 지역은 다른 지역으로 향하는 양방향 도로를 하나씩 지었다. ii번째 지역에서 지은 도로는 did_i번째 지역으로 이동할 수 있는 양방향 도로이다.

B국의 침략에 대비해 각 지역에 부대를 주둔시키려고 한다. 다만 부대를 불필요하게 많이 주둔시키면 효용성이 감소하므로, 효용성이 최대가 되도록 부대를 각 지역에 효율적으로 배치하고자 한다. 이때 부대의 효용성은, 해당 부대에서 도로를 하나만 거쳐 이동할 수 있는 지역 중 부대를 주둔시키지 않은 서로 다른 지역의 개수로 정의한다.

각 부대의 효용성의 합이 최대가 되도록 부대를 배치했을 때의 효용성의 합을 구해 보자.

입력

첫 번째 줄에 지역의 개수 NN이 주어진다. (2≤N≤100 000)(2 \le N \le 100\,000)

두 번째 줄에 각 지역에서 지은 양방향 도로와 연결된 지역을 의미하는 NN개의 정수 d1,⋯ ,dNd_1, \cdots, d_N이 공백으로 구분되어 주어진다. (1≤di≤N; di≠i)(1 \le d_i \le N;\ d_i \neq i)

출력

모든 부대의 효용성의 합의 최댓값을 출력한다.

예제1

  1. 예제 1

    입력
    6
    2 4 1 6 2 5
    
    예상 출력
    6