AT_abc217_d.[ABC217D] Cutting Woods

普及/提高-

通过率:0%

AC君温馨提醒

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

题目描述

有一根长度为 LL 米的直线木材。
对于 x=1,2,…,L−1x = 1, 2, \dots, L-1,在距离木材左端 xx 米的位置上画有标记线 xx。

现在有 QQ 个操作,第 ii 个操作由一对数 (ci,xi)(c_i, x_i) 表示。
请按照 ii 的升序依次处理每个操作,具体如下:

  • 当 ci=1c_i = 1 时:在标记线 xix_i 处将木材切成两段。
  • 当 ci=2c_i = 2 时:选择包含标记线 xix_i 的那段木材,并输出其长度。

并且对于所有 ci=1,2c_i = 1, 2,保证在处理该操作时,标记线 xix_i 尚未被切割过。

输入格式

输入按以下格式从标准输入读入。

LL QQ
c1c_1 x1x_1
c2c_2 x2x_2
⋮\vdots
cQc_Q xQx_Q

输出格式

对于每一个 ci=2c_i = 2 的操作,输出一行结果。第 jj 行输出第 jj 个此类操作的答案。

输入输出样例

  • 输入#1

    5 3
    2 2
    1 3
    2 2

    输出#1

    5
    3
  • 输入#2

    5 3
    1 2
    1 4
    2 3

    输出#2

    2
  • 输入#3

    100 10
    1 31
    2 41
    1 59
    2 26
    1 53
    2 58
    1 97
    2 93
    1 23
    2 84

    输出#3

    69
    31
    6
    38
    38

说明/提示

数据范围

  • 1≤L≤1091 \leq L \leq 10^9
  • 1≤Q≤2×1051 \leq Q \leq 2 \times 10^5
  • ci=1c_i = 1 或 22,1≤i≤Q1 \leq i \leq Q
  • 1≤xi≤L−11 \leq x_i \leq L-1,1≤i≤Q1 \leq i \leq Q
  • 对于所有 ii,不存在 1≤j<i1 \leq j < i 使得 (cj,xj)=(1,xi)(c_j, x_j) = (1, x_i)。
  • 所有输入均为整数。

样例解释 1

第 1 个操作时,木材尚未被切割,包含标记线 22 的木材长度为 55 米,因此输出 55。
第 2 个操作后,木材被分成长度为 33 米和 22 米的两段。
第 3 个操作时,包含标记线 22 的木材长度为 33 米,因此输出 33。

由 ChatGPT 4.1 翻译

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

首页