시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
2 초 128 MB 28 15 7 53.846%

문제

N개의 정수로 구성된 배열 A[1..N]가 있다. 이 배열의 원소들은 1부터 N사이의 정수이고 모두 다른 숫자이다. 배열 B[1..N]는 아래의 규칙에 의해 배열 A로부터 만들어진다.

B[A[A[i]]]=i, (1<=i<=n)

문제는 역으로 배열 B를 입력받으면 이에 해당하는 배열 A를 찾는 것이다. (물론 존재하지 않을수도 있다) 만약 가능한 배열 A가 두 개이상 존재한다면 그 중 임의로 하나만 출력하면 된다.

입력

첫 번째 줄에 B배열의 원소 개수 N(1<=N<=20,000)이 입력된다. 두 번째 줄부터 N+1번째 줄까지 한 줄에 하나씩 B[1], …, B[N]이 차례대로 입력된다.

출력

첫 번째 줄에 배열 A의 원소 개수 N을 출력한다. (해가 존재할 경우 배열 B의 원소 개수 N을 출력하고 해가 존재하지 않을 경우 0을 출력한다) 다음 줄부터 한 줄에 하나씩 A[1], …, A[N]을 출력한다.

예제 입력

4
3
4
1
2

예제 출력

4
2
3
4
1

힌트

출처

  • 잘못된 데이터를 찾은 사람: august14
  • 문제를 번역한 사람: author6