BFFs (Large)

각 아이가 한 명의 단짝을 가리킬 때, 모든 아이가 단짝 옆에 앉는 가장 큰 원형 배치의 크기를 구한다.

보통7그래프DFS동적 계획법구현아직 제출이 없습니다시간 제한5초메모리 제한512 MB

문제

당신은 새로 문을 연 Little Coders 유치원의 선생님이다. 반에는 아이가 N명 있고, 각 아이의 학생 번호는 1부터 N까지 모두 다르다. 반의 모든 아이에게는 단짝(BFF)이 정확히 한 명씩 있으며, 당신은 아이마다 단짝이 누구인지 알고 있다. 단짝 관계가 서로 같을 필요는 없다. 즉 B가 A의 단짝이라고 해서 A가 B의 단짝인 것은 아니다.

내일 수업 계획에는 참가자가 원형으로 둘러앉아야 하는 활동이 있다. 이 활동을 최대한 성공적으로 만들기 위해, 원에 앉은 모든 아이가 자기 단짝 바로 옆(왼쪽이나 오른쪽)에 앉도록 하면서 가능한 한 큰 원을 만들려고 한다. 원에 들어가지 않은 아이는 활동에 참여하지 않고 구경한다.

원에 앉을 수 있는 아이는 최대 몇 명인가?

입력

첫째 줄에 테스트 케이스의 수 TT가 주어진다. 이어서 TT개의 테스트 케이스가 주어진다. 각 테스트 케이스는 두 줄로 이루어진다. 첫째 줄에는 반의 아이 수 NN이 주어진다. 둘째 줄에는 정수 F1,F2,,FNF_1, F_2, \ldots, F_N이 주어지며, FiF_i는 학생 번호가 ii인 아이의 단짝의 학생 번호이다.

제한

  • 1T1001 \le T \le 100
  • 모든 ii에 대해 1FiN1 \le F_i \le N
  • 모든 ii에 대해 FiiF_i \ne i (자기 자신을 단짝으로 두는 아이는 없다.)
  • 3N10003 \le N \le 1000

출력

각 테스트 케이스마다 "Case #x: y" 형식으로 한 줄을 출력한다. xx는 1부터 시작하는 테스트 케이스 번호이고, yy는 원에 앉은 모든 아이가 자기 단짝 옆에 앉도록 원형으로 배치할 수 있는 아이 수의 최댓값이다.

힌트

예제의 네 번째 테스트 케이스에서 가장 큰 원은 다음 아이들을 이 순서대로 앉힌 것이다: 7 9 3 10 4 1. (이 원을 뒤집거나 회전해도 조건을 만족한다.) 이 목록은 원을 나타내므로 학생 번호 1인 아이는 조건대로 학생 번호 7인 아이 옆에 앉는다.