시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 128 MB117332233.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]을 출력한다.

예제 입력 1

4
3
4
1
2

예제 출력 1

4
2
3
4
1

출처

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