[入门赛 #17] 方程求解

题目描述

小 A 有 $n$ 个关于 $x$ 的方程,第 $i$ 个方程形如 $a_ix_i+b_i=c_i$。方程的解 $x$ 均为正整数,例如下面几个方程都是符合要求的方程: ``` 2x+4=10 -3x+13=10 4x-8=16 ``` 其中,第一组方程的解为 $x_1=3$,第二组方程的解为 $x_2=1$,第三组方程的解为 $x_3=6$。 小 A 想要知道,给定 $L,R$,在 $L\leq x\leq R$ 的范围内,有多少个正整数 $x$ 满足 $x$ 是其中至少一个方程的解。为了防止你欺骗他,他会询问你 $Q$ 次。

输入输出格式

输入格式


第一行输入两个正整数 $n,Q$,分别表示小 A 有的方程数,以及小 A 想要向你询问的次数。 第二行开始,往下 $n$ 行,每行一个字符串,描述一个方程。 第 $(n+2)$ 行开始,往下 $Q$ 行,每行两个正整数 $L,R$,表示一次询问,即给定 $L,R$,询问在 $L\leq x\leq R$ 的范围内,有多少个正整数 $x$ 满足 $x$ 是其中至少一个方程的解。

输出格式


对于每次询问,输出一行一个整数,表示有多少个在 $L\leq x\leq R$ 的范围内的正整数 $x$,满足 $x$ 是其中至少一个方程的解。

输入输出样例

输入样例 #1

3 4
2x+4=10
-3x+13=10
4x-8=16
1 6
1 8
3 6
4 5

输出样例 #1

3
3
2
0

输入样例 #2

5 3
5x-2=13
8x+5=45
4x-12=8
-2x+10=4
3x-7=2
1 3
1 5
3 5

输出样例 #2

1
2
2

说明

**【样例解释】** 对于第一组样例,即为题目中的举例。三组方程的解分别为 $x_1=3,x_2=1,x_3=6$。则: - 对于 $1\leq x\leq 6$ 的范围,有 $3$ 个 $x$ 的取值($x=1,3,6$)是其中至少一个方程的解; - 对于 $1\leq x\leq 8$ 的范围,同上所述; - 对于 $3\leq x\leq 6$ 的范围,有 $2$ 个 $x$ 的取值($x=3,6$)是其中至少一个方程的解; - 对于 $4\leq x\leq 5$ 的范围,不存在一个 $x$ 是其中至少一个方程的解; - 因此分别输出 $3,3,2,0$。 对于第二组样例,五组方程的解分别为 $x_1=3,x_2=5,x_3=5,x_4=3,x_5=3$。则: - 对于 $1\leq x\leq 3$ 的范围,只有 $x=3$ 满足是其中至少一个方程的解; - 对于 $1\leq x\leq 5$ 的范围,有 $2$ 个 $x$ 的取值($x=3,5$)是其中至少一个方程的解; - 对于 $3\leq x\leq 5$ 的范围,有 $2$ 个 $x$ 的取值($x=3,5$)是其中至少一个方程的解; - 因此分别输出 $1,2,2$。 **【数据范围】** 数据保证,$1\leq n,Q\leq 2\times 10^5$,方程中 $a_i,b_i,c_i$ 满足 $1 \leq |a_i|,|b_i|,|c_i| \leq 10^9$,每一组方程的解 $x_i$ 必定为正整数。询问时的 $L,R$ 满足 $1\leq L\leq R\leq 2\times 10^9$。 本题输入数据较大,请注意代码输入输出的运行效率。