Powerful Ksenia
题意翻译
给 $n$ 个正整数 $a_i$,$1 \le a_i\le10^9$.
每次操作是选三个不同的下标 $i,j,k$ ,让 $a_i,a_j,a_k$ 都变成 $a_i \oplus a_j\oplus a_k$ 也就是这三个数的异或和.
让你判断是否能在 $n$ 次操作内,使这 $n$ 个正整数的值变成相同的.
若能,第一行输出YES,第二行输出 $m$ 表示操作数两,接下来 $m$ 行每行三个整数,描述一次操作;
若不能,输出NO.
题目描述
Ksenia has an array $ a $ consisting of $ n $ positive integers $ a_1, a_2, \ldots, a_n $ .
In one operation she can do the following:
- choose three distinct indices $ i $ , $ j $ , $ k $ , and then
- change all of $ a_i, a_j, a_k $ to $ a_i \oplus a_j \oplus a_k $ simultaneously, where $ \oplus $ denotes the [bitwise XOR operation](https://en.wikipedia.org/wiki/Bitwise_operation#XOR).
She wants to make all $ a_i $ equal in at most $ n $ operations, or to determine that it is impossible to do so. She wouldn't ask for your help, but please, help her!
输入输出格式
输入格式
The first line contains one integer $ n $ ( $ 3 \leq n \leq 10^5 $ ) — the length of $ a $ .
The second line contains $ n $ integers, $ a_1, a_2, \ldots, a_n $ ( $ 1 \leq a_i \leq 10^9 $ ) — elements of $ a $ .
输出格式
Print YES or NO in the first line depending on whether it is possible to make all elements equal in at most $ n $ operations.
If it is possible, print an integer $ m $ ( $ 0 \leq m \leq n $ ), which denotes the number of operations you do.
In each of the next $ m $ lines, print three distinct integers $ i, j, k $ , representing one operation.
If there are many such operation sequences possible, print any. Note that you do not have to minimize the number of operations.
输入输出样例
输入样例 #1
5
4 2 1 7 2
输出样例 #1
YES
1
1 3 4
输入样例 #2
4
10 4 49 22
输出样例 #2
NO
说明
In the first example, the array becomes $ [4 \oplus 1 \oplus 7, 2, 4 \oplus 1 \oplus 7, 4 \oplus 1 \oplus 7, 2] = [2, 2, 2, 2, 2] $ .