AT_abc421_f.[ABC421F] Erase between X and Y

提高+/省选-

通过率:0%

AC君温馨提醒

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

题目描述

有一个序列 AA。起始时,A=(0)A=(0)。也就是说,AA 是一个长度为 11 且唯一元素为 00 的序列。

你需要依次处理 QQ 个操作。第 ii 个操作(1≤i≤Q1\leq i\leq Q)有如下两种形式之一:

  • 1 x:在 AA 中 xx 出现的位置后面插入 ii。具体地,记当前 AA 的第 jj 个元素为 AjA_j,nn 为 AA 当前长度。若 Ap=xA_p=x,则更新 AA 为 (A1,…,Ap,i,Ap+1,…,An)(A_1,\dots,A_p,i,A_{p+1},\dots,A_n)。保证本操作处理前 AA 中必然包含 xx。
  • 2 x y:删除 AA 中 xx 和 yy 之间的所有元素,并输出被删除元素的和。具体地,记当前 AA 的第 jj 个元素为 AjA_j,nn 为 AA 当前长度。若 Ap=xA_p=x,Aq=yA_q=y,则输出 Amin⁡(p,q)+1+⋯+Amax⁡(p,q)−1A_{\min(p,q)+1} + \dots + A_{\max(p,q)-1},并将 AA 更新为 (A1,…,Amin⁡(p,q),Amax⁡(p,q),…,An)(A_1,\dots,A_{\min(p,q)},A_{\max(p,q)},\dots,A_n)。保证本操作处理前 AA 中必然包含 xx 与 yy。

注意,对于任意一组操作序列,在处理操作过程中,A 中同样的值不会重复出现,因此某个值在 AA 中的位置是唯一的(如果它存在的话)。

输入格式

输入按如下格式从标准输入读入:

QQ
query1\text{query}_{1}
query2\text{query}_{2}
⋮\vdots
queryQ\text{query}_{Q}

其中,queryi\text{query}_{i} 表示第 ii 个操作,为下述两种格式之一:

1 xx
2 xx yy

输出格式

设一共有 qq 个 22 类型操作。请输出 qq 行,第 ii 行输出第 ii 个 22 类型操作的输出结果。

输入输出样例

  • 输入#1

    6
    1 0
    1 1
    1 0
    2 2 3
    1 2
    2 0 5

    输出#1

    1
    5
  • 输入#2

    2
    1 0
    2 0 1

    输出#2

    0
  • 输入#3

    10
    1 0
    1 1
    2 0 2
    2 0 2
    1 0
    1 5
    2 0 5
    2 2 6
    1 6
    1 9

    输出#3

    1
    0
    0
    0

说明/提示

样例解释 1

初始时,A=(0)A=(0)。

  • 第 11 次操作:在 00 后插入 11。AA 变为 (0,1)(0,1)。
  • 第 22 次操作:在 11 后插入 22。AA 变为 (0,1,2)(0,1,2)。
  • 第 33 次操作:在 00 后插入 33。AA 变为 (0,3,1,2)(0,3,1,2)。
  • 第 44 次操作:删除 22 和 33 之间的元素,也就是 11,输出 11。AA 变为 (0,3,2)(0,3,2)。
  • 第 55 次操作:在 22 后插入 55。AA 变为 (0,3,2,5)(0,3,2,5)。
  • 第 66 次操作:删除 00 和 55 之间的元素,即 3,23,2,输出 55。AA 变为 (0,5)(0,5)。

样例解释 2

第 22 次操作中,删除 00 和 11 之间的元素,但它们之间其实没有元素,所以输出 00。

数据范围

  • 1≤Q≤5×1051 \le Q \le 5\times 10^5
  • 对于第 ii 个操作:
    • 若为 11 类型操作:
      • 0≤x<i0 \le x < i
      • 操作前 AA 中一定包含 xx。
    • 若为 22 类型操作:
      • 0≤x<y<i0\le x < y < i
      • 操作前 AA 中一定包含 xx 和 yy。
  • 所有输入均为整数。

由 ChatGPT 5 翻译

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

首页