Bessie는 자신의 알고리즘으로 정수 배열을 정렬하려고 합니다. $(1 \leq N \leq 2\cdot 10^5)$과 $(1 \leq a_i \leq 10^{11})$을 만족하는 $N$개의 정수 $a_1,a_2,\dots,a_N$가 한 더미에 있으며, 이를 별도의 배열에 정렬된 순서로 넣으려고 합니다. 더미에서 최솟값을 반복해서 찾아 제거한 뒤 배열 끝에 추가합니다. 정수 $p$개의 더미에서 최솟값을 찾는 데 $p$초가 걸립니다.
Farmer John은 다른 소들에게 도우라고 했지만 소들은 게으르므로 Bessie는 이를 이용합니다. 정수들을 자신의 더미와 도우미 더미로 나눕니다. 자신의 더미에는 평소 알고리즘을 적용하고, 다른 더미의 각 정수는 서로 다른 도우미 소에게 줍니다. 농장이 크므로 원하는 만큼 도우미를 구할 수 있습니다. $a_i$를 받은 도우미는 $a_i$초 동안 낮잠을 잔 뒤 일어나자마자 그 정수를 배열 끝에 추가합니다. Bessie와 도우미가 동시에 추가하면 리더인 Bessie의 정수가 먼저 추가됩니다. 같은 정수를 받은 여러 도우미는 그 정수의 복사본들을 동시에 추가합니다.
최종 배열이 정렬되어 있고 정렬 시간이 최소가 되도록 정수들을 나누세요.
입력
첫째 줄에는 독립적인 테스트 케이스의 수 $T$($1\le T\le 10$)가 주어집니다.
각 테스트 케이스의 형식은 다음과 같습니다.
첫째 줄에는 배열의 정수 개수 $N$이 주어집니다.
다음 줄에는 정렬할 정수 $a_1, a_2, \dots, a_N$이 주어집니다. 같은 정수가 여러 번 나올 수 있습니다.
모든 테스트 케이스의 $N$의 합이 $2\cdot 10^5$을 넘지 않음이 보장됩니다.
출력
각 테스트 케이스에서 최적으로 나눴을 때의 최소 정렬 시간을 한 줄씩 출력하세요.
예제
입력 1
4 5 1 2 4 5 100000000000 5 17 53 4 33 44 4 3 5 5 5 6 2 5 100 1 4 5
출력 1
6 15 5 6
참고
첫 번째 예에서는 $1,2$를 도우미에게 주고 $4,5,10^{11}$를 자신이 맡을 수 있습니다.
| 시간 | 사건 |
|---|---|
| 1 | 도우미가 추가 1 |
| 2 | 도우미가 추가 2 |
| 3 | Bessie가 추가 4 |
| 5 | Bessie가 추가 5 |
| 6 | Bessie가 추가 $10^{11}$ |
두 번째 예에서는 모두 직접 정렬하는 것이 최선입니다. $4$를 도우미에게 주고 나머지를 맡는 것은 불가능합니다. 도우미가 $4$를 추가하기 전에 Bessie가 $17$을 추가하기 때문입니다.
세 번째 예에서는 모든 정수를 도우미에게 줄 수 있습니다.
네 번째 예에서는 $1,4,5$를 도우미에게 주고 $2,5,100$를 자신이 맡을 수 있습니다.
| 시간 | 사건 |
|---|---|
| 1 | 도우미가 추가 1 |
| 3 | Bessie가 추가 2 |
| 4 | 도우미가 추가 4 |
| 5 | Bessie가 추가 5 |
| 5 | 도우미가 추가 5 |
| 6 | Bessie가 추가 100 |
서브태스크
- 입력 2: $N\le 16$
- 입력 3–5: $N\le 150$
- 입력 6–8: $\sum N\le 5000$
- 입력 9–11: 추가 제한이 없습니다.
출제: Suhas Nagar