跑酷文明

题目描述:

小 A 有 \( n \) 个无限大的网格图,每张图上都分布着密度各异的格点。

对于第 \( i \) 张网格图(\( 1 \le i \le n \)),其上相邻格点间的距离为 \( i + 1 \)。更具体地:

  • 网格图 \( i \) 上的坐标 \( (x, y) \) 有格点,当且仅当存在整数 \( a, b \) 满足 \( x = (i + 1) \times a \),\( y = (i + 1) \times b \)。

小 A 将这 \( n \) 张网格图对齐叠加,形成了一张新的复合网格图。在复合网格图上,一个位置处有格点,当且仅当该位置在至少一张网格图上有格点(如果多张网格图的同一位置都有格点,它们会在复合网格图上合并为一个)。

接下来,小 A 选定复合网格图上的一个矩形区域,矩形区域的左下角坐标为 \( (x_1, y_1) \),右上角坐标为 \( (x_2, y_2) \)。

你的任务是,求出该矩形区域内(包含边界)的格点数量。

输入格式:

输入格式如下:

\( \quad \begin{matrix} n \\ x_1 & y_1 \\ x_2 & y_2 \end{matrix} \)

输出格式:

输出一行一个整数,代表区域内可见的格点数。

样例输入:

样例1
2
-1 -1
1 1

样例2
3
1 1
6 10

样例输出:

样例1
1

样例2
20

提示:

样例解释 #1

唯一的格点在 \( (0, 0) \) 处。

样例解释 #2

该区域的格点分布如下:

. # # # . # . # # #
. . . . . . . . . .
. # . # . # . # . #
. . # . . # . . # .
. # . # . # . # . #
. . . . . . . . . .

对于所有数据:

  • \( 1 \le n \le 10^7 \)
  • \( -10^7 \le x_1 \le x_2 \le 10^7 \)
  • \( -10^7 \le y_1 \le y_2 \le 10^7 \)
子任务 分值  附加约束
\( \bf1 \) \( 17 \)  \( n \le 3 \);\( |x_i|, |y_i| \le 100 \)
\( \bf2 \) \( 14 \)  \( n \le 10^3 \);\( |x_i|, |y_i| \le 10^3 \)
\( \bf3 \) \( 16 \)  \( n \le 10^3 \)
\( \bf4 \) \( 18 \)  \( n \le 10^6 \)
\( \bf5 \) \( 15 \)  \( |x_i|, |y_i| \le 10^6 \)
\( \bf6 \) \( 11 \)  \( x_1, y_1 = 1 \);\( x_2, y_2 = n \)
\( \bf7 \) \( 9 \)  \( - \)

 

时间限制: 2000ms
空间限制: 512MB

来源: ItsMartlet_