#P16362. [BalticOI 2026] Sort

    ID: 18435 远端评测题 1000ms 512MiB 尝试: 0 已通过: 0 显示难度省选/NOI− 上传者: 标签>贪心树状数组BalticOI(波罗的海)2026双指针 two-pointer离线处理

[BalticOI 2026] Sort

题目描述

给定一个包含 nn 个整数的数组 x1,x2,…,xnx_1, x_2, \dots, x_n。你需要回答 qq 个询问 (a,b)(a, b)。每次操作中,你可以执行以下两种操作之一:

  • 将前 aa 个数按非递减序排序,或
  • 将后 bb 个数按非递减序排序。

若要使得整个数组按非递减序排列,至少需要多少次操作?在每个询问中,数组均从初始值 x1,x2,…,xnx_1, x_2, \dots, x_n 开始。

输入格式

第一行包含两个整数 nn 和 qq,分别表示数组的长度和询问的数量。

第二行包含 nn 个整数 x1,x2,…,xnx_1, x_2, \dots, x_n,表示数组的内容。

接下来的 qq 行描述各询问。每行包含两个整数 aa 和 bb。

输出格式

输出 qq 行,每行是对应询问的答案。如果无法将数组排序,则输出 -1。

6 3
3 1 4 1 5 9
4 1
3 3
2 5
1
-1
2

提示

解释

在第一个询问中,可以通过对前 44 个数排序,在一次操作内将数组排序。

在第二个询问中,无法利用给定的操作将数组排序。

在第三个询问中,可以通过两次操作将数组排序:首先对前 22 个数排序,然后对后 55 个数排序。

数据范围

  • 1≤n,q≤2⋅1051 \le n,q \le 2 \cdot 10^5
  • 1≤xi≤1091 \le x_i \le 10^9
  • 所有询问中 1≤a,b≤n1 \le a,b \le n

子任务

子任务 约束条件 分值
1 n,q≤10n,q\le 10 且所有询问满足 a+b≤na+b\le n 66
2 n,q≤10n,q \le 10 55
3 所有询问满足 a+b≤na+b \le n 77
4 1≤xi≤21 \le x_i \le 2 1414
5 n,q≤5000n,q \le 5000 且数组是 1,2,…,n1,2,\dots,n 的一个排列 2323
6 n,q≤5000n,q \le 5000 1212
7 无额外限制 3333

翻译由 DeepSeek V4 Pro 完成