CF1605A题解
我们来看一下这道题:
首先我们令 $k = \left\vert a_1 + a_3 - 2 \times a_2\right\vert$,
因为 $a_1$ 与 $a_3$ 是等价的,
所以操作 $a_1$ 和 $a_3$ 的结果不会改变,以及操作 $a_1$ 和 $a_2$ 与操作 $a_3$ 和 $a_2$ 是等价的,
那么我们只需考虑操作 $a_1$ 和 $a_2$:
- $a_1 + 1,a_2 - 1$,则 $k$ 会增加 $3$,
- $a_1 - 1,a_2 + 1$,则 $k$ 会减少 $3$,
我们推出了:若 $k\equiv{x}\pmod{3}$,则 $k$ 就能变成 $x$,
可是这样结束了吗?
我们来看一下 $x = 2$ 的情况:
- $k$ 不取绝对值为正,那么我们在原结果上再减一个 $3$,则 $\left\vert 2 - 3 \right\vert = 1$,就更小了!
- $k$ 不取绝对值为负,那么我们在原结果上再加一个 $3$,则$\left\vert -2 + 3 \right\vert = 1$,也跟小了!
我们在推出以下结论:令 $t = \left\vert a_1 + a_3 - 2 \times a_2\right\vert$
- $3 \mid t$,则答案为 $0$,
- $3 \nmid t$,则答案为 $1$,
接下来是代码时间!
#include <cstdio>
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int T; scanf ("%d", &T);
while (T --) {
int a1, a2, a3; scanf ("%d%d%d", &a1, &a2, &a3);
printf ("%d\n", !(abs (a1 + a3 - 2 * a2) % 3 == 0));
}
return 0;
}