#luoguP6511. [QkOI#R1] Quark and Equations

[QkOI#R1] Quark and Equations

题目描述

给定 n,mn,m,求有几组正整数对 (i,j)(i,j) 满足下列方程组:

$$\begin{cases} i+j=n \\ \lfloor\frac{i}{j}\rfloor+\lceil\frac{j}{i}\rceil=m \end{cases} $$

上式中,⌊x⌋\lfloor x\rfloor 表示对 xx 向下取整,⌈x⌉\lceil x\rceil 表示对 xx 向上取整。

输入格式

本题单个数据点含多组数据。

第一行一个整数 TT 表示这个数据点有几组数据。

接下来 TT 行每行两个整数 n,mn,m ,含义如题面所述。

输出格式

你的输出应有 TT 行。

对于每一组数据,输出一行一个整数表示你的答案。

2
2 2
2 1

1
0
1
6 2

2

提示

样例解释

当 n=m=2n=m=2 时,只有 (1,1)(1,1) 满足条件。
当 n=2,m=1n=2,m=1 时,无解。
当 n=6,m=2n=6,m=2 时,只有 (2,4),(3,3)(2,4),(3,3) 满足条件。


数据范围

本题采用捆绑测试。

  • Subtask 1(10 pts):T,n,m≤500T,n,m\le 500。
  • Subtask 2(40 pts):T,n,m≤5000T,n,m\le 5000。
  • Subtask 3(5 pts):m=1m=1。
  • Subtask 4(5 pts):m>nm>n。
  • Subtask 5(5 pts):m∈[n−1,n]m\in[n-1,n]。
  • Subtask 6(35 pts):无特殊限制。

对于 100%100\% 的数据,1≤T≤1051\le T\le 10^5,1≤n,m≤1071\le n,m\le 10^{7}。