만드는 중입니다

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

심각한 계단 중독입니다

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

요약
주어진 N개의 값을 배열했을 때 마지막 값과 처음 값을 포함해 모든 인접한 값의 차이가 정확히 1이 되는지 판단합니다.
난이도

보통10점 중 5점

유형
수학, 구현
정답자
아직 제출이 없습니다

문제

병철이는 다이어트를 위해 매일 계단을 오른다. 너무 많은 계단을 오르다 보니, 주변의 모든 사물이 계단형이 아니면 불편함을 느끼게 되었다.

그러다 보니 알고리즘 문제를 풀 때도 이런 문제나 저런 문제가 아니면 불편함을 느끼게 되었다. 이 심각한 계단 중독이 점점 악화되자, 입력 데이터까지 계단이 아니면 불편함을 느끼게 되었다.

결국 병철이는 해킹으로 모든 데이터를 계단 수로 바꾸기로 결심하였다.

여기서 계단 수란, 어떤 수의 앞과 뒤에 있는 수가 그 수와 11 차이가 나는 수열을 말한다. 예를 들어 1−2−3−4−51-2-3-4-5나 1−2−3−2−31-2-3-2-3은 계단 수이다.

병철이는 여기서 만족하지 않고, 기존 계단 수에 조건을 더해 본인만의 계단 수를 정의하려고 한다. 병철이의 계단 수는 기존 계단 수의 조건을 만족하면서, 맨 앞의 수와 맨 뒤의 수도 11 차이가 나는 수열이다. 예를 들어 1−2−3−2−3−21-2-3-2-3-2는 병철이의 계단 수이다.

계단 수로 순서를 조정할 수 있는 데이터는 많지 않으므로, 병철이는 이 조건을 만족하는 데이터만 찾으려고 한다. 주어진 데이터의 순서를 조정하여 병철이의 계단 수를 만들 수 있는지 알아보자.

입력

첫 줄에는 데이터의 크기 NN이 주어진다. (1≤N≤50 000)(1 \leq N \leq 50\,000)

두 번째 줄에는 데이터에 포함된 값 a0,a1,⋯ ,aN−1a_0, a_1, \cdots, a_{N-1}이 주어진다. (1≤ai≤100 000)(1 \leq a_i \leq 100\,000)

출력

데이터의 순서를 조정하여 병철이의 계단 수를 만들 수 있다면 1을, 없다면 -1을 출력한다.

예제2

  1. 예제 1

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

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