CF2040A.Game of Division

入门

通过率:0%

AC君温馨提醒

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

题目描述

给定一个长度为 nn 的整数数组 a1,a2,…,ana_1, a_2, \ldots, a_n 和一个整数 kk。

有两名玩家在进行游戏。第一名玩家选择一个下标 1≤i≤n1 \le i \le n。然后第二名玩家选择一个不同的下标 1≤j≤n,i≠j1 \le j \le n, i \neq j。如果 ∣ai−aj∣|a_i - a_j| 不能被 kk 整除,则第一名玩家获胜。否则,第二名玩家获胜。

你作为第一名玩家,判断是否有可能获胜。如果可以,输出应该选择哪个下标 ii。

数 xx 的绝对值记作 ∣x∣|x|,当 x≥0x \ge 0 时 ∣x∣=x|x| = x,否则 ∣x∣=−x|x| = -x。

输入格式

每组测试数据包含多组测试用例。输入的第一行包含一个整数 tt(1≤t≤1001 \le t \le 100)——表示测试用例的数量。接下来是每组测试用例的描述。

每组测试用例的第一行包含两个整数 nn 和 kk(1≤n≤1001 \le n \le 100;1≤k≤1001 \le k \le 100)——数组的长度和整数 kk。

每组测试用例的第二行包含 nn 个整数 a1,a2,…,ana_1, a_2, \ldots, a_n(1≤ai≤1001 \le a_i \le 100)——数组 aa 的元素。

输出格式

对于每组测试用例,如果第一名玩家不可能获胜,输出 “NO”。

否则,输出 “YES”,并在下一行输出一个合适的下标 1≤i≤n1 \le i \le n。如果有多个解,输出其中任意一个即可。

你可以以任意大小写输出每个字母(如 "yEs"、"yes"、"Yes" 和 "YES" 都会被识别为肯定答案)。

输入输出样例

  • 输入#1

    7
    3 2
    1 2 3
    4 2
    1 2 4 5
    5 3
    10 7 3 4 5
    5 3
    1 31 15 55 36
    2 1
    17 17
    2 2
    17 18
    1 3
    6

    输出#1

    YES
    2
    NO
    YES
    3
    NO
    NO
    YES
    2
    YES
    1

说明/提示

在第一个测试用例中,第一名玩家可以选择 a2=2a_2 = 2。此时:

  • 如果第二名玩家选择 a1=1a_1 = 1,则差值为 ∣2−1∣=1|2 - 1| = 1,不能被 k=2k = 2 整除。
  • 如果第二名玩家选择 a3=3a_3 = 3,则差值为 ∣2−3∣=1|2 - 3| = 1,不能被 k=2k = 2 整除。

在第二个测试用例中:

  • 如果第一名玩家选择 a1=1a_1 = 1,第二名玩家选择 a4=5a_4 = 5,则差值为 ∣1−5∣=4|1 - 5| = 4,可以被 k=2k = 2 整除。
  • 如果第一名玩家选择 a2=2a_2 = 2,第二名玩家选择 a3=4a_3 = 4,则差值为 ∣2−4∣=2|2 - 4| = 2,可以被 k=2k = 2 整除。
  • 如果第一名玩家选择 a3=4a_3 = 4,第二名玩家选择 a2=2a_2 = 2,则差值为 ∣4−2∣=2|4 - 2| = 2,可以被 k=2k = 2 整除。
  • 如果第一名玩家选择 a4=5a_4 = 5,第二名玩家选择 a1=1a_1 = 1,则差值为 ∣5−1∣=4|5 - 1| = 4,可以被 k=2k = 2 整除。

无论如何,第二名玩家都会获胜。

由 ChatGPT 4.1 翻译

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

首页