AT_agc024_b.[AGC024B] Backfront

普及+/提高

通过率:0%

AC君温馨提醒

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

题目描述

给定一个由 11 到 NN 的整数重新排列得到的数列 (P1,P2,…,PN)(P_1, P_2, \ldots, P_N)。你可以重复进行如下操作,将该数列变为升序排列,求所需操作次数的最小值。

  • 每次操作可以选择数列中的一个元素,将其移动到数列的开头或末尾。

可以证明,使用上述操作一定可以将数列变为升序排列。

输入格式

输入通过标准输入给出,格式如下:

NN P1P_1 P2P_2 …\ldots PNP_N

输出格式

输出所需操作次数的最小值。

输入输出样例

  • 输入#1

    4
    1
    3
    2
    4

    输出#1

    2
  • 输入#2

    6
    3
    2
    5
    1
    4
    6

    输出#2

    4
  • 输入#3

    8
    6
    3
    1
    2
    7
    4
    8
    5

    输出#3

    5

说明/提示

限制条件

  • 1≤N≤2×1051 \leq N \leq 2 \times 10^5
  • (P1,P2,…,PN)(P_1, P_2, \ldots, P_N) 是 (1,2,…,N)(1, 2, \ldots, N) 的一个排列
  • 输入均为整数

样例解释 1

例如,可以通过以下操作将数列变为升序排列:

  • 将 22 移动到开头。新数列为 (2,1,3,4)(2, 1, 3, 4)。
  • 将 11 移动到开头。新数列为 (1,2,3,4)(1, 2, 3, 4)。

由 ChatGPT 4.1 翻译

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

首页