CF1993C.Light Switches

普及/提高-

通过率:0%

AC君温馨提醒

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

题目描述

一栋公寓楼里面有 nn 个房间,初始时每个房间的灯都是关的。为了更好地对房间里的灯进行控制,房东计划在不同时间给每个房间安装芯片。具体地,房东给每个房间安装芯片的时刻可以用包含 nn 个整数的数组 aa 来表示,其中第 ii 个元素 aia_i 表示房东给第 ii 个房间安装芯片的时刻。

一旦某个房间被安装上了芯片,这个房间里面的灯的状态每隔 kk 分钟就会发生一次变化,也就是说,安装商芯片的这一时刻起,这个房间里面的灯会先被点亮,kk 分钟后被熄灭,kk 分钟后再被点亮,如此循环往复。形式化的来讲,对于第 ii 个房间的灯,它的状态会在第 ai,ai+k,ai+2k,…a_i,a_i+k,a_i+2k,\dots 分钟发生变化。

现在请你求出所有房间的灯都被点亮的最小时刻,或者报告不存在所有房间的灯都被点亮的时刻。

输入格式

本题包含多组数据。

第一行输入一个整数 TT,表示数据组数。

对于每组数据,第一行输入两个整数 n,kn,k,分别表示房间个数和灯的状态发生变化的时间间隔。第二行输入 nn 个整数,第 ii 个整数表示房东给第 ii 个房间安装芯片的时刻 aia_i。

输出格式

对于每组数据,如果不存在所有房间的灯都被点亮的时刻,输出一行 −1-1,否则输出一行一个整数,表示所有房间的灯都被点亮的最小时刻(单位为分钟)。

输入输出样例

见下文 输入 #1 和 输出 #1。

样例 #1 解释

对于第一组数据,可以发现在第 55 分钟所有的灯都是开着的。

对于第二组数据,第一个房间的灯被点亮的时刻为 2,3,4,8,9,10,14…2,3,4,8,9,10,14\dots,而第四个房间的灯被点亮的时刻为 5,6,7,11,12,13,17,…5,6,7,11,12,13,17,\dots,可以发现这两个房间的灯无论什么时刻都不可能同时被点亮。

对于第三组数据,各个房间的灯在前 1010 分钟的状态如下表所示:

时刻(分钟) 11 22 33 44 55 66 77 88 99 1010
11 号房间的灯 关 关 开 开 开 关 关 关 开 开
22 号房间的灯 关 关 关 开 开 开 关 关 关 开
33 号房间的灯 关 关 关 关 关 关 关 开 开 开
44 号房间的灯 关 关 关 关 关 关 关 关 开 开

因此,所有房间的灯都被点亮的最小时刻为 1010。

输入输出样例

  • 输入#1

    9
    4 4
    2 3 4 5
    4 3
    2 3 4 5
    4 3
    3 4 8 9
    3 3
    6 2 1
    1 1
    1
    7 5
    14 34 6 25 46 7 17
    6 5
    40 80 99 60 90 50
    6 5
    64 40 50 68 70 10
    2 1
    1 1000000000

    输出#1

    5
    -1
    10
    8
    1
    47
    100
    -1
    -1

说明/提示

对于所有数据:

  • 1⩽T⩽1041\leqslant T\leqslant 10^4。
  • 1⩽k⩽n⩽2×1051\leqslant k\leqslant n\leqslant 2\times 10^5,∑n⩽2×105\sum n\leqslant 2\times 10^5。
  • 1⩽an⩽1091\leqslant a_n\leqslant 10^9。

Translated by Eason_AC。

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

首页