QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 256 MB Total points: 100

#20859. 낮잠 정렬

Statistics

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

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.