QOJ.ac

QOJ

Süre Sınırı: 1 s Bellek Sınırı: 1024 MB Toplam puan: 100

#1171. 整數陣列洗牌

İstatistikler

畀出一個大小為 $N$ 嘅整數陣列 $A$,洗牌操作定義如下。

  • 最初,建立一個空嘅整數陣列 $B$。
  • 之後,只要 $A$ 仲未空,就移除 $A$ 最左邊或者最右邊嘅元素,再將個值加到 $B$ 嘅最右邊。
  • 如果 $A$ 空咗,就用 $B$ 取代 $A$,然後停止。
problem_1171_89c88ed9b4827b8c5abe06dc4e63c1e5.png

如果按上圖進行洗牌操作,陣列 $A$ 會變成:

$$(34,19,5,36,4,25,12,9)\to(9,34,19,12,25,4,5,36).$$

設 $A_i$ 係陣列 $A$ 嘅第 $i$ 個元素。如果滿足「只要 $1 \le i<j \le N$,就有 $A_i \le A_j$」,就稱陣列 $A$ 單調遞增。

請寫一個程式,畀出大小為 $N$ 嘅整數陣列 $A$,計算最少要做幾多次洗牌操作,先可以令陣列 $A$ 單調遞增。

輸入格式

輸入第一行有一個整數 $N$,係陣列 $A$ 嘅元素數目($1 \le N \le 3\cdot 10^5$)。

第二行有 $N$ 個整數 $A_1,\ldots,A_N$,係陣列 $A$ 各元素嘅初始值($1 \le A_i \le 10^9$)。

輸出格式

輸出令陣列 $A$ 單調遞增所需嘅最少洗牌操作次數。

樣例

輸入格式 1

3
2 2 5

輸出格式 1

0

輸入格式 2

6
1 5 8 10 3 2

輸出格式 2

1

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.