QOJ.ac

QOJ

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

#20859. Ordinamento con sonnellini

Statistics

Bessie vuole ordinare un array di interi con il proprio algoritmo. Ha un mucchio di $N$ interi $a_1,a_2,\dots,a_N$, con $(1 \leq N \leq 2\cdot 10^5)$ e $(1 \leq a_i \leq 10^{11})$, da mettere ordinati in un altro array. Trova ripetutamente il minimo del mucchio, lo rimuove e lo aggiunge in fondo all’array. Trovare il minimo tra $p$ interi richiede $p$ secondi.

Farmer John ha chiesto ad altre mucche di aiutarla, ma sono pigre, e Bessie ne approfitta. Divide gli interi nel proprio mucchio e in quello delle aiutanti. Elabora il proprio normalmente e assegna ogni intero dell’altro a un’aiutante diversa. La fattoria è grande, quindi può avere quante aiutanti vuole. Un’aiutante che riceve $a_i$ dorme $a_i$ secondi e aggiunge il suo intero in fondo all’array appena si sveglia. Se Bessie e un’aiutante aggiungono contemporaneamente, l’intero di Bessie viene prima perché è la capo. Più aiutanti con lo stesso intero ne aggiungono copie contemporaneamente.

Dividi gli interi affinché l’array finale sia ordinato e il tempo di ordinamento sia minimo.

Input

La prima riga contiene $T$, il numero di casi indipendenti ($1\le T\le 10$).

Ogni caso ha questo formato:

La prima riga contiene il numero di interi $N$ nell’array di Bessie.

La successiva contiene gli interi da ordinare, $a_1, a_2, \dots, a_N$. Lo stesso intero può apparire più volte.

La somma di $N$ su tutti i casi non supera $2\cdot 10^5$.

Output

Per ogni caso stampa su una nuova riga il tempo minimo di ordinamento con divisione ottimale.

Esempi

Input 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

Output 1

6
15
5
6

Nota

Nel primo esempio può assegnare $1,2$ alle aiutanti e tenere $4,5,10^{11}$.

Tempo Evento
1 L’aiutante aggiunge 1
2 L’aiutante aggiunge 2
3 Bessie aggiunge 4
5 Bessie aggiunge 5
6 Bessie aggiunge $10^{11}$

Nel secondo è meglio ordinare tutto da sola. Assegnare $4$ a un’aiutante e tenere il resto non funziona: Bessie aggiungerebbe $17$ prima che l’aiutante aggiunga $4$.

Nel terzo può assegnare tutti gli interi alle aiutanti.

Nel quarto può assegnare $1,4,5$ alle aiutanti e tenere $2,5,100$.

Tempo Evento
1 L’aiutante aggiunge 1
3 Bessie aggiunge 2
4 L’aiutante aggiunge 4
5 Bessie aggiunge 5
5 L’aiutante aggiunge 5
6 Bessie aggiunge 100

Sottoproblemi

  • Input 2: $N\le 16$
  • Input 3–5: $N\le 150$
  • Input 6–8: $\sum N\le 5000$
  • Input 9–11: nessun vincolo aggiuntivo.

Autore del problema: 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.