숫자 고르기
면접 대비시간 제한1초메모리 제한128 MB
1부터 N까지의 인덱스에서 i에서 A_i로 가는 함수 그래프에서 이 매핑에 닫혀 있는 최대 집합(사이클들의 합집합)을 구해 출력합니다.
문제
2행 N열의 표가 있다. 첫 번째 행에는 1부터 N까지의 정수가 순서대로 적혀 있고, 두 번째 행의 i번째 칸에는 1 이상 N 이하의 정수 A_i가 적혀 있다.
첫 번째 행에서 몇 개의 정수를 골라 집합 S를 만든다. 이때 고른 각 정수 i의 바로 아래에 있는 값 A_i들도 하나의 집합 T를 만든다. S와 T가 같아지도록 정수를 고를 수 있다.
조건을 만족하는 선택 중에서 |S|가 최대가 되도록 하고, 그때 고른 정수들을 출력하라.
입력
첫째 줄에 정수 N(1 <= N <= 100)이 주어진다. 다음 N개의 줄에는 A_1, A_2, ..., A_N이 순서대로 한 줄에 하나씩 주어진다. 각 A_i는 1 이상 N 이하이다.
출력
첫째 줄에 고른 정수의 개수를 출력한다. 이후 고른 정수들을 오름차순으로 한 줄에 하나씩 출력한다.