CF1982F.Sorting Problem Again

省选/NOI-

通过率:0%

AC君温馨提醒

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

题目描述

已知一个序列,给定 qq 次修改。对于初始序列和每次修改后的序列,你需要做到:

找到长度最小的连续的子串,使得如果这个子串按升序排序,整个序列也就满足单调不降。输出这个子串的起始位置 l,rl, r;若此时序列已经满足单调不降,认为 l,rl, r 均为 −1-1。

注意,对这个子串的“升序排序”只是一个假想出的操作,并不会改变原序列。

输入格式

本题有多组数据。

第一行输入一个正整数 TT(1≤T≤101 \leq T \leq 10),表示测试数据的组数。对于每组数据:

第一行输入序列长度 nn(1≤n≤5⋅1051 \leq n \leq 5 \cdot 10^5)。

第二行输入 nn 个整数 aia_i,即给定的序列(0≤∣ai∣≤1090 \leq |a_i| \leq 10^9)。

第三行输入修改操作的个数 qq(0≤q≤5⋅1050 \leq q \leq 5 \cdot 10^5)。

接下来 qq 行,每行输入两个整数 pp 和 vv(1≤p≤n1 \leq p \leq n 且 0≤∣v∣≤1090 \leq |v| \leq 10^9),表示 ap←va_p \gets v。

保证 ∑n,∑q≤5⋅105\sum n, \sum q \leq 5 \cdot 10^5。

输出格式

对于每组测试数据,输出 q+1q + 1 行。

每行输出两个整数 l,rl, r,含义见题面。

输入输出样例

  • 输入#1

    2
    5
    2 2 3 4 5
    3
    2 1
    4 1
    1 1
    5
    1 2 3 4 5
    9
    1 4
    2 3
    5 2
    3 1
    1 1
    5 1
    4 1
    3 1
    2 1

    输出#1

    -1 -1
    1 2
    1 4
    3 4
    -1 -1
    1 3
    1 3
    1 5
    1 5
    2 5
    2 5
    2 5
    2 5
    -1 -1

说明/提示

对于第一个样例:

  • 一开始,序列 aa 已经满足单调不降:[2,2,3,4,5][2, 2, 3, 4, 5]。
  • 第一次修改后,序列 aa 长这样:[2,1,3,4,5][\color{red}{2}\color{black}{}, \color{red}{1}\color{black}{}, 3, 4, 5]。
  • 第二次修改后,序列 aa 长这样:[2,1,3,1,5][\color{red}{2}\color{black}{}, \color{red}{1}\color{black}{}, \color{red}{3}\color{black}{}, \color{red}{1} \color{black}{},5]。
  • 第三次修改后,序列 aa 长这样:[1,1,3,1,5][1, 1, \color{red}{3}\color{black}{}, \color{red}{1}\color{black}{}, 5]。

标红的部分即为题目所求。

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

首页