시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 128 MB81427519032.986%

문제

숌은 N개의 다른 숫자로 구성되어 있는 집합 X를 만들었다. 그리고, 길이가 2N인 숌 사이 수열 (S)을 만들려고 한다.

숌 사이 수열이란 다음과 같다.

  1. X에 들어있는 모든 수는 숌 사이 수열 S에 정확히 두 번 등장해야 한다.
  2. X에 등장하는 수가 i라면, S에서 두 번 등장하는 i사이에는 수가 i개 등장해야 한다.

예를 들어, 숌이 만든 집합 X가 {1,2,3}이고, 숌이 만든 숌 사이 수열이 {2 3 1 2 1 3}이라면, 일단 X에 속하는 모든 수가 S에 두 번 등장하므로 1번 조건을 만족한다. 그리고, 2와 2사이엔 수가 두 개, 1과 1사이엔 1개, 3과 3사이엔 3개가 등장하므로 조건을 만족시킨다.

집합 X가 주어졌을 때, 숌 사이 수열 S를 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 X의 크기 N이 주어진다. 둘째 줄에 X에 들어가는 수가 빈칸을 사이에 두고 주어진다. X의 크기는 8보다 작거나 같은 자연수이다. X의 원소는 0보다 크거나 같고 16보다 작거나 같은 정수이다.

출력

첫째 줄에 숌 사이 수열을 출력한다. 만약 여러 개일 경우 사전 순으로 가장 빠른 것을 출력한다. 만약 없을 경우에는 -1을 출력한다.

예제 입력 1

3
1 2 3

예제 출력 1

2 3 1 2 1 3

예제 입력 2

1
0

예제 출력 2

0 0

예제 입력 3

4
1 2 3 4

예제 출력 3

2 3 4 2 1 3 1 4

예제 입력 4

5
1 2 3 4 5

예제 출력 4

-1

예제 입력 5

2
2 0

예제 출력 5

2 0 0 2

예제 입력 6

8
0 4 13 12 8 5 2 14

예제 출력 6

-1

출처

  • 문제를 번역한 사람: baekjoon
  • 문제의 오타를 찾은 사람: kks227