QOJ.ac

QOJ

Süre Sınırı: 1 s Bellek Sınırı: 1024 MB Toplam puan: 100 Hack'lenebilir ✓

#15442. Cyclic Shift

İstatistikler

給定一個包含 $n$ 個整數的序列:$a_1, a_2, \dots, a_n$。

考慮該序列所有 $n$ 種可能的循環移位(旋轉)。對於起始位置 $p$($1 \le p \le n$),對應的循環移位序列為

$$b_1, b_2, \dots, b_n = a_p, a_{p+1}, \dots, a_n, a_1, a_2, \dots, a_{p-1}.$$

對於這個移位後的序列,定義其前綴最大值序列 $c_1, c_2, \dots, c_n$ 為

$$c_i = \max(b_1, b_2, \dots, b_i) \quad \forall i = 1, 2, \dots, n.$$

我們使用通常的字典序來比較兩個相同長度的序列:$c$ 的字典序小於 $d$ 若且唯若存在一個索引 $i$ 使得 $c_1 = d_1, c_2 = d_2, \dots, c_{i-1} = d_{i-1}$,並且 $c_i < d_i$。

你的任務是選擇原序列的一個循環移位,使得其前綴最大值序列在所有 $n$ 種可能的循環移位中字典序最小。

輸入格式

第一行包含一個整數 $T$($1 \le T \le 2 \cdot 10^5$),表示測試資料的組數。

每組測試資料包含兩行:

  • 第一行包含一個整數 $n$($1 \le n \le 5 \cdot 10^5$)。
  • 第二行包含 $n$ 個整數 $a_1, a_2, \dots, a_n$($1 \le a_i \le n$)。

保證所有測試資料中 $n$ 的總和不超過 $5 \cdot 10^5$。

輸出格式

對於每組測試資料,輸出一行包含 $n$ 個整數:循環移位後字典序最小的前綴最大值序列。

範例

6
5
5 4 3 2 1
4
1 3 1 3
5
1 2 1 3 1
5
2 3 2 1 1
6
1 2 1 3 1 4
6
2 1 3 1 4 1
1 5 5 5 5
1 3 3 3
1 1 2 2 3
1 1 2 3 3
1 2 2 3 3 4
1 2 2 3 3 4

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.