CF2085E.Serval and Modulo

提高+/省选-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

给定一个由 nn 个非负整数组成的数组 aa 和一个魔法数 kk(k≥1k \ge 1 且为整数)。Serval 构造了另一个长度为 nn 的数组 bb,其中对于所有 1≤i≤n1 \leq i \leq n,满足 bi=ai mod k∗b_i = a_i \bmod k^{\text{∗}}。随后,他将 bb 打乱了顺序。

现在给定数组 aa 和 bb,请找出一个可能的魔法数 kk。如果 Serval 欺骗了你且这样的整数不存在,则输出 −1-1。

可以证明,在题目约束下,若这样的 kk 存在,则存在一个不超过 10910^9 的有效答案。你需要在输出中保证 k≤109k \leq 10^9。

∗^{\text{∗}}符号 ai mod ka_i \bmod k 表示 aia_i 除以 kk 的余数。

输入格式

每个测试包含多个测试用例。第一行输入测试用例数 tt(1≤t≤1041 \le t \le 10^4)。接下来描述每个测试用例。

每个测试用例的第一行包含一个整数 nn(1≤n≤1041 \leq n \leq 10^4)——数组 aa 的长度。

第二行包含 nn 个整数 a1,a2,…,ana_1, a_2, \ldots, a_n(0≤ai≤1060 \leq a_i \leq 10^6)——数组 aa 的元素。

第三行包含 nn 个整数 b1,b2,…,bnb_1, b_2, \ldots, b_n(0≤bi≤1060 \leq b_i \leq 10^6)——数组 bb 的元素。

保证所有测试用例的 nn 之和不超过 10410^4。

输出格式

对于每个测试用例,输出一个整数 kk(1≤k≤1091 \leq k \leq 10^9)——找到的魔法数。若不存在这样的整数,输出 −1-1。

若存在多个答案,输出任意一个即可。

输入输出样例

  • 输入#1

    5
    4
    3 5 2 7
    0 1 1 1
    5
    3 1 5 2 4
    1 2 3 4 5
    6
    2 3 4 7 8 9
    1 2 3 6 7 8
    5
    21 22 25 28 20
    0 1 2 1 0
    6
    1 1 2 3 5 8
    0 0 1 1 0 0

    输出#1

    2
    31415926
    -1
    4
    -1

说明/提示

第一个测试案例中,若 k≥3k \ge 3,则 2=a3 mod k2 = a_3 \bmod k 必须出现在数组 bb 中,但这会导致矛盾。当 k=1k = 1 时,[a1 mod k,a2 mod k,a3 mod k,a4 mod k]=[0,0,0,0][a_1 \bmod k, a_2 \bmod k, a_3 \bmod k, a_4 \bmod k] = [0,0,0,0],无法通过打乱顺序得到 bb。当 k=2k = 2 时,[a1 mod k,a2 mod k,a3 mod k,a4 mod k]=[1,1,0,1][a_1 \bmod k, a_2 \bmod k, a_3 \bmod k, a_4 \bmod k] = [1,1,0,1],可以打乱为 bb。因此唯一可能的答案是 k=2k = 2。

第二个测试案例中,注意 bb 可以通过打乱 aa 直接得到。因此所有 66 到 10910^9 的整数都是合法答案。

第三个测试案例中,可以证明这样的 kk 不存在。Serval 欺骗了你!

翻译由 DeepSeek R1 完成

输入解题思路,AI测评打分。不知道怎么写?

首页