[MtOI2019] 膜Siyuan
题目背景
你强归你强,$\mathsf S\mathsf{\color{red} iyuan}$ 比你强。——$\mathsf S \mathsf{\color{red} iyuan}$
disangan233 最近发现了一款 OIer 们的游戏:[膜 $\color{black} \mathsf S \mathsf{\color{red} iyuan}$](https://lmoliver.github.io/mosiyuan/index.html)。
他被里面的「真理 IV」所困惑,于是他找到了你寻求帮助。
题目描述
给你 $1$ 个正整数 $M$,$n(n\leq 5)$ 个正整数 $3$ 元组 $\{a_i,b_i,c_i\}(a_i,b_i,c_i\leq M\leq 2000)$,请你求出所有满足
$$
\forall i\leq n ,s.t.~|a_i-x|\oplus |b_i-y|\oplus |c_i-z| = 9
$$
的**有序**正整数 $3$ 元组 $\{x,y,z\}(x,y,z \leq M)$的个数。
其中,$\forall$ 表示 "对于所有",$s.t.$ 表示 "使得",$A \oplus B \oplus C$ 表示 $A,B,C$ 的异或和。
对于 C++,`A^B^C` 或 `A xor B xor C` 即为 $A \oplus B \oplus C$ 的答案 。
这里提供一份模板:
```cpp
if ((a ^ b ^ c) == 9)
{
Your code here...
}
```
对于 $2$ 个有序 $3$ 元组 $A,B$,如果 $x_A \not =x_B$ 或 $y_A \not =y_B$ 或 $z_A \not =z_B$,$A,B$ 即被视为是不同的。
输入输出格式
输入格式
共 $n+1$ 行。
第 $1$ 行输入 $2$ 个正整数 $n$,$M$。
接下来 $n$ 行第 $i$ 行输入 $3$ 个正整数 $a_i,b_i,c_i$。
输出格式
共 $1$ 行,输出 $1$ 个非负整数表示所求答案。
输入输出样例
输入样例 #1
5 200
21 84 198
38 47 102
44 47 132
63 150 166
76 79 132
输出样例 #1
4
说明
#### 样例解释 $1$
所有满足条件的 $\{x,y,z\}$ 有:
$\{88,88,120\}$,$\{88,104,104\}$,$\{120,120,120\}$ 和 $\{120,136,104\}$。
共 $4$ 个。
### 子任务
对于 $10\%$ 的数据,保证与样例完全一致。
对于 $60\%$ 的数据,保证 $M\leq 200$。
对于所有数据,保证 $a_i,b_i,c_i\leq M\leq 2000$,$n\leq 5$。
### 题目来源
[MtOI2019 Extra Round](https://www.luogu.org/contest/22614) T2
出题人:disangan233
验题人:Studying Father