#NC2502I. 相同,一定意义上

相同,一定意义上

题目描述

哈希函数可以将数据转换为固定长度的输出序列;也可以说,它为每个数据创建一个"标签"。

在本题中,输入始终是整数。如果两个不同的整数 x,y x, y (xy x \neq y ) 被转换成了相同的字符串,这可能是个坏事。在哈希函数的视角来看,这两个数可以一定意义上被认为是相同的。这被称为哈希冲突。

我们考虑以下带参数 k k 的哈希函数:

H(x)=(xmodk)+(kmodx) H(x) = (x \mod k) + (k \mod x)

对于每对输入 (x,y)(x, y) (xy x \neq y ),是否存在一个参数,使得对应的哈希函数会导致哈希冲突?如果存在,输出任意这样的 k k ;否则,输出 -1

输入格式

每组测试包含多个测试用例。第一行包含测试用例的数量 T T (1T104 1 \leq T \leq 10^4 )。

每个测试用例由一行组成。该行包含两个整数 x,y x, y (1x,y109,xy 1 \leq x, y \leq 10^9, x \neq y ),即元素对。

输出格式

对于每个测试用例,输出一个整数 —— 导致哈希冲突的参数 k k (1k1018 1 \leq k \leq 10^{18} )。如果没有不大于 1018 10^{18} 的正整数满足条件,则输出 -1

2
5 9
9 15
4
6

解释 #1

对于第一个案例,5mod4+4mod5=1+4=5 5 \mod 4 + 4 \mod 5 = 1 + 4 = 5 9mod4+4mod9=1+4=5 9 \mod 4 + 4 \mod 9 = 1 + 4 = 5

对于第二个案例,9mod6+6mod9=3+6=9 9 \mod 6 + 6 \mod 9 = 3 + 6 = 9 15mod6+6mod15=3+6=9 15 \mod 6 + 6 \mod 15 = 3 + 6 = 9