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

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

맨해튼 정렬

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

요약
서로 다른 정수로 이루어진 수열을 위치 사이 거리만큼 비용이 드는 교환만으로 정렬하는 최소 총비용을 구합니다.
난이도

보통10점 중 5점

유형
그리디, 정렬, 수학
정답자
아직 제출이 없습니다

문제

서로 다른 정수 NN개로 이루어진 수열 SS가 주어진다. 다음 연산 하나만 써서 SS를 오름차순으로 정렬할 때 드는 비용의 최솟값을 구하라.

맨해튼 교환: 위치 ii의 원소 SiS_i와 위치 jj의 원소 SjS_j를 맞바꾼다. 비용은 ∣i−j∣|i-j|다.

예를 들어 수열 {9,5,3}\{9, 5, 3\}은 맨해튼 교환 한 번으로 정렬된다. 첫 원소와 마지막 원소를 맞바꾸면 되고, 두 위치의 차가 22이므로 비용은 22다.

입력

첫 줄에 테스트 케이스의 개수 TT가 주어진다. 각 테스트 케이스는 두 줄이다. 첫 줄에 수열 SS의 길이 NN (1≤N≤301 \le N \le 30)이 주어지고, 둘째 줄에 SS의 원소 NN개가 공백으로 구분되어 주어진다. 원소는 모두 서로 다르며 32비트 부호 있는 정수 범위 안에 있다.

출력

테스트 케이스마다 한 줄씩 Case #x: y 형식으로 출력한다. xx는 1부터 시작하는 테스트 케이스 번호이고, yy는 맨해튼 교환만 써서 수열을 오름차순으로 정렬하는 최소 비용이다.

예제2

  1. 예제 1

    입력
    2
    3
    9 5 3
    6
    6 5 4 3 2 1
    
    예상 출력
    Case #1: 2
    Case #2: 9
    
  2. 예제 2

    입력
    3
    1
    42
    2
    2 1
    3
    2 3 1
    
    예상 출력
    Case #1: 0
    Case #2: 1
    Case #3: 2