# 洛谷 - P5596 题

## #题面

### #题目描述

$y^2 - x^2 = ax + b$

### #输入输出样例

5 15


1


$(x, y) = (6, 9)$.

4 4


inf


12 6


0


96 96


7


10000 9999997


6


### #数据范围与约定

• Subtask 1（3 points）：$a = b = 0$
• Subtask 2（6 points）：$0 \le a,b \le 2$，不存在无限个数的情况。
• Subtask 3（9 points）：$0 \le a,b \le 100$，不存在无限个数的情况。
• Subtask 4（13 points）：$0 \le a,b \le 10^3$，不存在无限个数的情况。
• Subtask 5（14 points）：$0 \le a \le 10^4$$0 \le b \le 10^7$
• Subtask 6（14 points）：$a = 0$
• Subtask 7（14 points）：$b = 0$

## #思路

$\tag{1} y^2 - x^2 = ax + b$

$(1)$ 式进行移项，得：

$\tag{2} y^2 - b = x^2 + 2ax$

$(2)$ 式右侧配方，得：

$\tag{3} y^2 - b = (x + \frac{a}{2})^2 - \frac{a^2}{4}$

$(3)$ 式两侧同乘 $4$，得：

$\tag{4} 4y^2 - 4b = (2x + a)^2 - a^2$

$(4)$ 式再次移项，得：

$\tag{5} a^2 - 4b = (2x + a)^2 - 4y^2$

$\tag{6} a^2 - 4b = (2x + a + 2y) (2x + a - 2y)$

1. $a^2 - 4b < 0$ 时，$2x + a - 2y < 0$

左右同乘 $-1$，得：

$\tag{7} 4b - a^2 = (2y + 2x + a) (2y - 2x - a)$

$p = 2y + 2x + a$$q = 2y - 2x - a$$0 < q < p$），显然可以将 $4b - a^2$ 分解为两数之积可以得到一组 $p, q$。又有：

\begin{aligned} p + q &= 4y \\ p - q &= 4x + 2a \Rarr p - q - 2a = 4x \\ \end{aligned}

可以枚举 $q$ 再据此计算出 $p$，进而再计算出 $x, y$ 的取值。

2. $a^2 - 4b > 0$ 时，$2x + a - 2y > 0$

$p = 2x + a + 2y$$q = 2x + a - 2y$$0 < q < p$），显然可以将 $a^2 - 4b$ 分解为两数之积可以得到一组 $p, q$。又有：

\begin{aligned} p + q &= 4x + 2a \Rarr p + q - 2a = 4x \\ p - q &= 4y \\ \end{aligned}

可以枚举 $q$ 再据此计算出 $p$，进而再计算出 $x, y$ 的取值。

3. $a^2 - 4b = 0$ 时，$2x + a - 2y = 0$

$a^2 - 4b = 0$ 可知，$a$ 为偶数。可得 $x + \frac{a}{2} = y$

显然对于任意一个 $x$ 都有一个与其对应的 $y$ 满足条件。此时有无穷多组解。