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$:

  1. $a_1 + 1,a_2 - 1$,则 $k$ 会增加 $3$,
  2. $a_1 - 1,a_2 + 1$,则 $k$ 会减少 $3$,

我们推出了:若 $k\equiv{x}\pmod{3}$,则 $k$ 就能变成 $x$,

可是这样结束了吗?

我们来看一下 $x = 2$ 的情况:

  1. $k$ 不取绝对值为正,那么我们在原结果上再减一个 $3$,则 $\left\vert 2 - 3 \right\vert = 1$,就更小了!
  2. $k$ 不取绝对值为负,那么我们在原结果上再加一个 $3$,则$\left\vert -2 + 3 \right\vert = 1$,也跟小了!

我们在推出以下结论:令 $t = \left\vert a_1 + a_3 - 2 \times a_2\right\vert$

  1. $3 \mid t$,则答案为 $0$,
  2. $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;
}
posted @ 2021-11-14 09:11  wangzhongyuan  阅读(2)  评论(0编辑  收藏  举报  来源