CF2040A Game of Division

题目描述

给定一个长度为 $n$ 的整数数组 $a_1, a_2, \ldots, a_n$ 和一个整数 $k$。 有两名玩家在进行游戏。第一名玩家选择一个下标 $1 \le i \le n$。然后第二名玩家选择一个不同的下标 $1 \le j \le n, i \neq j$。如果 $|a_i - a_j|$ 不能被 $k$ 整除,则第一名玩家获胜。否则,第二名玩家获胜。 你作为第一名玩家,判断是否有可能获胜。如果可以,输出应该选择哪个下标 $i$。 数 $x$ 的绝对值记作 $|x|$,当 $x \ge 0$ 时 $|x| = x$,否则 $|x| = -x$。

输入格式

每组测试数据包含多组测试用例。输入的第一行包含一个整数 $t$($1 \le t \le 100$)——表示测试用例的数量。接下来是每组测试用例的描述。 每组测试用例的第一行包含两个整数 $n$ 和 $k$($1 \le n \le 100$;$1 \le k \le 100$)——数组的长度和整数 $k$。 每组测试用例的第二行包含 $n$ 个整数 $a_1, a_2, \ldots, a_n$($1 \le a_i \le 100$)——数组 $a$ 的元素。

输出格式

对于每组测试用例,如果第一名玩家不可能获胜,输出 “NO”。 否则,输出 “YES”,并在下一行输出一个合适的下标 $1 \le i \le n$。如果有多个解,输出其中任意一个即可。 你可以以任意大小写输出每个字母(如 "yEs"、"yes"、"Yes" 和 "YES" 都会被识别为肯定答案)。

说明/提示

在第一个测试用例中,第一名玩家可以选择 $a_2 = 2$。此时: - 如果第二名玩家选择 $a_1 = 1$,则差值为 $|2 - 1| = 1$,不能被 $k = 2$ 整除。 - 如果第二名玩家选择 $a_3 = 3$,则差值为 $|2 - 3| = 1$,不能被 $k = 2$ 整除。 在第二个测试用例中: - 如果第一名玩家选择 $a_1 = 1$,第二名玩家选择 $a_4 = 5$,则差值为 $|1 - 5| = 4$,可以被 $k = 2$ 整除。 - 如果第一名玩家选择 $a_2 = 2$,第二名玩家选择 $a_3 = 4$,则差值为 $|2 - 4| = 2$,可以被 $k = 2$ 整除。 - 如果第一名玩家选择 $a_3 = 4$,第二名玩家选择 $a_2 = 2$,则差值为 $|4 - 2| = 2$,可以被 $k = 2$ 整除。 - 如果第一名玩家选择 $a_4 = 5$,第二名玩家选择 $a_1 = 1$,则差值为 $|5 - 1| = 4$,可以被 $k = 2$ 整除。 无论如何,第二名玩家都会获胜。 由 ChatGPT 4.1 翻译