만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

원소 교환

면접 대비

시간 제한1초메모리 제한1024 MB

요약
길이 N인 수열 A를 원소 교환으로 재배열해 모든 위치의 값이 원래 값과 달라지게 하거나, 불가능하면 -1을 출력합니다.
난이도

보통10점 중 4점

유형
정렬, 배열, 구현
정답자
아직 제출이 없습니다

문제

길이가 NN인 정수로 이루어진 수열 A1,A2,⋯ ,ANA_1, A_2, \cdots, A_N이 주어진다. 이 수열의 원소 중에서 서로 다른 두 원소를 골라 위치를 바꾸는 연산을 원하는 만큼 시행하여 새로운 수열 B1,B2,⋯ ,BNB_1, B_2, \cdots, B_N을 만들려고 한다.

모든 ii (1≤i≤N1 \le i \le N)에 대해 Ai≠BiA_i \ne B_i인 수열 B1,B2,⋯ ,BNB_1, B_2, \cdots, B_N을 만들 수 있을까?

입력

첫째 줄에 NN이 주어진다. (1≤N≤5 0001 \le N \le 5\,000)

둘째 줄에 NN개의 정수 A1,A2,⋯ ,ANA_1, A_2, \cdots, A_N이 주어진다. (1≤Ai≤100 0001 \le A_i \le 100\,000)

출력

조건을 만족하는 수열 B1,B2,⋯ ,BNB_1, B_2, \cdots, B_N을 만들 수 없다면 첫째 줄에 -1을 출력한다.

만들 수 있다면 첫째 줄에 그러한 수열 B1,B2,⋯ ,BNB_1, B_2, \cdots, B_N을 아무거나 하나 출력한다.

예제3

  1. 예제 1

    입력
    4
    1 1 2 2
    
    예상 출력
    2 2 1 1
    
  2. 예제 2

    입력
    4
    1 3 2 1
    
    예상 출력
    3 1 1 2
    
  3. 예제 3

    입력
    5
    2 1 2 1 2
    
    예상 출력
    -1