はまやんはまやんはまやん

hamayanhamayan's blog

Tiny Arithmetic Sequence [マイナビプログラミングコンテスト2021(AtCoder Beginner Contest 201) A]

https://atcoder.jp/contests/abc201/tasks/abc201_a

解説

https://atcoder.jp/contests/abc201/submissions/22640618

並び替えを全探索して、等差数列であるかを判定してもいい。
そっちの方が実装簡単だったかも。

条件を改めてみてみると、
A[3] - A[2] = A[2] - A[1]
A[3] + A[1] = 2 * A[2]
という感じなので、1つだけ選択した場合に
それ以外の和 = 選択×2
となるものがあればYesとなる。
自分の実装ではこれを判定している。

int A[3];
//---------------------------------------------------------------------------------------------------
void _main() {
    rep(i, 0, 3) cin >> A[i];
    
    rep(i, 0, 3) {
        int lft = 0;
        rep(j, 0, 3) if (i != j) lft += A[j];
        int rht = A[i] * 2;

        if (lft == rht) {
            cout << "Yes" << endl;
            return;
        }
    }

    cout << "No" << endl;
}