CF241D Numbers
题目描述
你有一个包含 $n$ 个互不相同整数 $a_{1},a_{2},...,a_{n}$ 的序列($1 \leq a_{i} \leq n$)。你需要删除一些整数,使得剩下的整数序列满足以下三个条件:
1. 剩下的序列不能为空;
2. 所有剩下的整数的异或值($xor$ 运算)等于 $0$;
3. 如果你把所有剩下的整数(按照从头到尾的顺序)依次写成一个不带空格的十进制数字,这个数字能够被 $p$ 整除。
给定长度为 $n$ 的序列 $a$ 和一个素数 $p$,请你找出一种方案,使上述条件都得到满足。
输入格式
输入的第一行包含两个整数 $n$ 和 $p$,满足 $1 \leq n, p \leq 50000$。
第二行包含 $n$ 个空格分隔的互不相同的整数 $a_1, a_2, ..., a_n$,其中 $1 \leq a_i \leq n$。
保证 $p$ 是一个素数。
输出格式
如果没有解,输出一行 “No”。
否则,第一行输出 “Yes”。
第二行输出一个整数 $k$($k>0$),表示剩下元素的数量。
第三行输出 $k$ 个互不相同的整数 $x_1, x_2, ..., x_k$($1 \leq x_i \leq n$),表示你应保留的元素在 $a$ 中的位置,使得删去其他整数后能满足条件。
如果存在多种方案,输出任意一种均可。
说明/提示
由 ChatGPT 5 翻译