AT_agc014_f.[AGC014F] Strange Sorting

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

高桥君非常喜欢排序。

因此,他准备了一个从 11 到 NN 的排列 (p1,p2,…,pN)(p_1, p_2, \ldots, p_N),并且他打算反复进行以下操作,直到该排列变成 (1,2,…,N)(1,2,\ldots,N) 为止:

  • 首先,对于排列中的每一项 ii,如果从第 11 项到第 ii 项的最大值等于第 ii 项本身,则称这一项为「高项」,否则称为「低项」。
  • 然后,按照当前排列的顺序,将高项中的数记为 a1,a2,…,aka_1, a_2, \ldots, a_k,低项中的数记为 b1,b2,…,bN−kb_1, b_2, \ldots, b_{N-k}。
  • 最后,将排列重新排列为 (b1,b2,…,bN−k,a1,a2,…,ak)(b_1, b_2, \ldots, b_{N-k}, a_1, a_2, \ldots, a_k)。

请你求出高桥君完成排序所需的操作次数。

输入格式

输入包含一行:

NN p1p_1 p2p_2 ... pNp_N

输出格式

输出高桥君完成排序所需的操作次数。

输入输出样例

  • 输入#1

    5
    3 5 1 2 4

    输出#1

    3
  • 输入#2

    5
    5 4 3 2 1

    输出#2

    4
  • 输入#3

    10
    2 10 5 7 3 6 4 9 8 1

    输出#3

    6

说明/提示

限制条件

  • 1≤N≤2×1051\leq N\leq 2\times 10^5
  • (p1,p2,…,pN)(p_1,p_2,\ldots,p_N) 是 11 到 NN 的一个排列。

样例说明 1

高桥君最开始有排列 (3,5,1,2,4)(3,5,1,2,4),每次操作后,排列如下所示:

  • 第 11,22 项是高项,第 33,44,55 项是低项,所以下一个排列是 (1,2,4,3,5)(1,2,4,3,5)。
  • 第 11,22,33,55 项是高项,第 44 项是低项,所以下一个排列是 (3,1,2,4,5)(3,1,2,4,5)。
  • 第 11,44,55 项是高项,第 22,33 项是低项,所以下一个排列是 (1,2,3,4,5)(1,2,3,4,5)。

由 ChatGPT 5 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页