아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

큐피드 돕기

면접 대비

시간 제한3초메모리 제한256 MB

요약
N개의 시간대에 속한 사람을 둘씩 짝지어 원형 시차 합의 최솟값을 구합니다.
난이도

보통10점 중 6점

유형
동적 계획법, 정렬
정답자
아직 제출이 없습니다

문제

큐피드의 일감이 계속 늘어나서, 큐피드는 새로운 기술을 들여오기로 했다. 부하 가운데 가장 뛰어난 프로그래머를 모아 Advanced Couples Matching(ACM)이라는 프로젝트를 맡겼다. 이 프로젝트에는 짝수 NN명의 솔로를 받아 N/2N/2쌍의 커플로 나누는 알고리즘이 필요하다. 각 사람은 정확히 한 쌍에만 속한다.

사람마다 알 수 있는 자료는 많지 않다. 성별, 민족, 나이, 국적을 커플의 기준으로 삼는 것은 알맞지 않으므로, 프로그래머는 후보의 인터넷 연결 자료만 쓸 수 있다. 이번 단계에서 고른 기준은 시간대다. 가까운 시간대에 사는 사람일수록 같은 시각에 접속해 이야기를 나누기 쉽다. 그래서 프로그래머는 시차의 합이 가장 작아지도록 커플을 만들기로 했다.

시간대는 협정 세계시(UTC)와의 차이를 시간 단위로 나타낸 −11-11 이상 1212 이하의 정수다. 시간대가 ii인 사람과 jj인 사람의 시차는 ∣i−j∣|i - j|와 24−∣i−j∣24 - |i - j| 중 작은 값이다. 후보 NN명을 N/2N/2쌍으로 나눈 한 가지 방법의 전체 시차는 각 커플의 시차를 모두 더한 값이다.

후보 NN명의 시간대를 입력받아, 커플로 나누는 모든 방법 중 전체 시차의 최솟값을 출력하는 프로그램을 작성하라.

입력

첫째 줄에 커플로 묶을 후보의 수를 나타내는 짝수 NN이 주어진다 (2≤N≤10002 \le N \le 1000). 둘째 줄에 후보의 시간대를 나타내는 정수 T1,T2,…,TNT_1, T_2, \dots, T_N이 주어진다 (−11≤Ti≤12-11 \le T_i \le 12).

출력

후보를 커플로 나누는 모든 방법 중 전체 시차의 최솟값을 정수 하나로 한 줄에 출력한다.

예제3

  1. 예제 1

    입력
    6
    -3 -10 -5 11 4 4
    
    예상 출력
    5
    
  2. 예제 2

    입력
    2
    -6 6
    
    예상 출력
    12
    
  3. 예제 3

    입력
    8
    0 0 0 0 0 0 0 0
    
    예상 출력
    0