样例一解释:
以第一次询问 [1, 4] 为例。
一开始栈为 {}。
加入 1 号二元组后栈为 {(3,10)},栈中只有一个元素,该二元组是“成功的”。
加入 2 号二元组 (1, 10) 时,栈顶的 (3, 10) 的 b 值不大于 2 号二元组的,因此弹栈。此时栈空,2 号二元组入栈,栈为 {(1,10)},该二元组是“成功的”。
加入 3 号二元组 (3, 2),此时栈顶元素与之 a 值不同,b 值比它更大,因而不需要弹栈,直接将 3 号二元组入栈,栈为 {(1,10),(3,2)},栈中有多个元素,该二元组不是“成功的”。
加入 4 号二元组 (1, 9),此时栈顶元素 (3, 2) 的 b 值比它小,弹栈。弹栈后栈顶元素 (1, 10) 与 (1, 9) 的 a 值相同,继续弹栈。此时栈空,4 号二元组入栈,栈为 {(1,9)},该二元组是“成功的”。共有 3 个二元组是“成功的”,因而答案为 3。
样例二:
stack
【数据范围与提示】
对于所有测试点:1≤n,q≤5×10
5,1≤ai,bi≤n,1≤li≤ri≤n。
每个测试点的具体限制见下表:
测试点编号
|
特殊性质
|
1∼3
|
n,q≤1000
|
4∼6
|
n≤5000
|
7∼10
|
n,q≤105
|
11∼12
|
bi=n−i+1
|
13∼15
|
ai=i
|
16∼20
|
无
|