만드는 중입니다

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

Array

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

요약
한 원소를 임의의 정수 y로 바꾸며 |a_x - y|를 지불할 때, 접두사별 서로 다른 값 개수의 가중합과 교체 비용의 합을 최소로 만든다.
난이도

어려움10점 중 8점

유형
배열, 해시맵, 누적 합, 그리디
정답자
아직 제출이 없습니다

문제

Chiaki는 정수 배열 a1,a2,…,ana_1,a_2,\dots,a_n을 가지고 있다. Chiaki는 원소 axa_x를 다른 정수 yy로 바꿀 수 있다. 바뀐 배열을 b1,b2,…,bnb_1,b_2,\dots,b_n이라 할 때, Chiaki는 ∣ax−y∣+∑k=1nk⋅ck|a_x-y| + \sum_{k=1}^{n} k \cdot c_k의 최솟값을 알고 싶어 한다. 여기서 ckc_k는 b1,b2,…,bkb_1,b_2,\dots,b_k에 등장하는 서로 다른 정수의 개수이다.

입력

여러 개의 테스트 케이스가 주어진다. 입력의 첫째 줄에는 테스트 케이스의 수 TT가 주어진다. 각 테스트 케이스는 다음과 같다.

첫째 줄에는 배열의 길이 nn이 주어진다 (1≤n≤1061 \le n \le 10^6).

둘째 줄에는 nn개의 정수 a1,a2,…,ana_1, a_2, \dots, a_n이 주어진다 (1≤ai≤1091 \le a_i \le 10^9).

모든 테스트 케이스에서 nn의 합은 10610^6을 넘지 않는다.

출력

각 테스트 케이스마다 답을 나타내는 정수를 한 줄에 출력한다.

예제1

  1. 예제 1

    입력
    1
    4
    1 2 3 4
    
    예상 출력
    22