题目描述
我们有一根长度为 L 米的木材。对于每个 x=1,2,…,L−1,在距离木材左端 x 米的位置有一个标记,称为标记 x。
给定 Q 个查询,第 i 个查询表示为一对数字 (ci,xi)。按 i 的升序处理查询,规则如下:
- 若 ci=1:在标记 xi 处将木材切割成两段。
- 若 ci=2:选择包含标记 xi 的那段木材,并输出其长度。
保证:对于所有查询(无论 ci=1 或 2),在处理时标记 xi 处均未被切割过。
输入格式
- 第一行为 L 和 Q。
- 接下来 Q 行,每行两个整数 ci 和 xi。
输出格式
对于每个 ci=2 的查询,输出包含 xi 的木材段长度。
样例
5 3
2 2
1 3
2 2
5
3
5 3
1 2
1 4
2 3
2
提示
样例1解释
- 初始木材长度为 5,标记 2 所在的段长度为 5。
- 在标记 3 处切割后,标记 2 所在的段变为左段(长度 3)。
数据范围
- 1≤L≤109
- 1≤Q≤2×105
- ci∈{1,2}(1≤i≤Q)
- 1≤xi≤L−1(1≤i≤Q)
- 唯一性保证:对于任意 i,不存在 j<i 使得 (cj,xj)=(1,xi)(即每个标记最多被切割一次)。
- 所有输入值为整数。
信息学奥赛网,一个优质的信息学奥赛学习资源平台!
信息学奥赛网 »
Cutting Woods