CF1482B.Restore Modulo

普及/提高-

通过率:0%

AC君温馨提醒

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

题目描述

若我们有四个非负整数 n,m,c,sn,m,c,s ( 0≤c<m0 \le c < m ),我们便可以通过以下方法构造出一个长度为 nn 的序列 aa:

  • a1=smod  ma_1=s\mod m,在这个 xmod  yx\mod y 表示 xx 除以 yy 的余数;
  • ai=(ai−1+c)mod  ma_i=(a_{i-1}+c)\mod m,其中 1<i≤n1<i\le n。

例如,若 n=5,m=7,c=4,s=10n=5,m=7,c=4,s=10,那么 a=[3,0,4,1,5]a=[3,0,4,1,5]。

现在,给你一个长度为 nn 的序列 aa,请求出是否满足有一组 n,m,c,sn,m,c,s 能将其构造出来。如果能,请使 mm 的值最大。

输入格式

第一行输入一个整数 tt ( 1≤t≤1051\le t\le 10^5 ),表示数据的组数。

接下来输入 tt 组数据,每组数据的第一行有一个正整数 nn ( 1≤n≤1051\le n\le 10^5 ),表示序列 aa 的长度。第二行有 nn 个正整数 a1,a2,...,ana_1,a_2,...,a_n ( 0≤ai≤1090\le a_i\le 10^9 ),表示数列 aa。

输出格式

对于每一组数据:

  • 若没有整数 n,m,c,sn,m,c,s 能构造出此序列,输出 −1-1;
  • 否则,若 mm 可以为任意大小,输出 00;
  • 否则,输出 mm 的最大值以及任意一个满足条件的整数 cc。

输入输出样例

  • 输入#1

    6
    6
    1 9 17 6 14 3
    3
    4 2 2
    3
    7 3 4
    3
    2 2 4
    5
    0 1000000000 0 1000000000 0
    2
    1 1

    输出#1

    19 8
    -1
    -1
    -1
    2000000000 1000000000
    0

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

首页