Processing math: 100%
编程题
                ### 问题描述

小明玩了一会俄罗斯方块,看着堆叠如山的方块,他又有了新的想法,那就是对于一个区间,有多少种不同的方块,假设每块落下的方块都是不同的。

俄罗斯方块每次都会随机落下一种方块,玩家一般来说要做的是将其整齐堆放凑整一行的方块将其消除,于是小明思考在 n 轮下落中,每轮下落的方块左端点为 l ,右端点为 r ,小明想知道在 n 次下落后,区间 xy 中有多少不同的方块。

小明想在短时间内迅速得到自己想知道的答案,你能帮帮他吗。

输入格式

第一行,包含一个正整数 n (1n2×105) ,代表小明进行的游戏轮数,同时也是小明的询问次数。

接下来 n 行,每行包含两个正整数 lr (1l,r106) ,代表每轮下落的方块的左右端点。

接下来一行,包含一个正整数 q (1q2×105) ,代表小明要进行 q 次询问。

接下来 q 行,每行包含两个正整数 xy (1x,y106) ,代表每轮小明询问的左右端点。

输出格式

输出 q 行,每行包含一个正整数,代表询问区间中有多少种不同的线段。

样例输入

3
3 5
1 4
6 8
3
2 4
1 5
4 7

样例输出

2
2
3

样例说明

询问共有 q 轮:

第一次小明询问区间 24 之间有多少种不同的方块,显然第一条和第二条线段有在区间 24 中,故输出 2

第二次小明询问区间 15 之间是否有未被覆盖的点,显然第一条和第二条线段有在区间 15 中,故输出 2

第二次小明询问区间 47 之间是否有未被覆盖的点,显然三条线段都有在区间 24 中,故输出 3

查看答案
赣ICP备20007335号-2