Yuulis.log

Yuulis.log

トンネルを抜けるとそこは参照エラーであった。

【AtCoder】ABC 369 A - 369 | 茶コーダーが解くAtCoder

atcoder.jp

実行時間制限: 2 sec / メモリ制限: 1024 MB / Difficulty: 28

問題概要

整数  A, B が与えられる。以下の条件を満たす整数  x は何通りあるか求めよ。

  • 条件 :  A, B, x を適切に並び替えて等差数列を作ることができる。

制約

  • 入力はすべて整数。
  •  1 \leq A, B \leq 100

考察

状況は以下の3つの場合に分けることができる。

  •  A = B のとき、  x = A = B とするしかないので1通り。
  •  |A - B| = 1 \: \mathrm{or} \: |A - B| が奇数 のとき、  x = 2A - B, \: 2B - A とすることができるので2通り。
  •  |A - B| が偶数 のとき、上の場合に加えて  x = \dfrac{A+B}{2} とすることができるので3通り。

コード

#include <bits/stdc++.h>
using namespace std;

// ======================================== //

int main()
{
    int A, B;
    cin >> A >> B;

    int diff = abs(A - B);
    if (A == B) cout << 1 << endl;
    else if (diff < 2 || diff % 2 != 0) cout << 2 << endl;
    else cout << 3 << endl;
}

atcoder.jp

実装時間 : 5分


A問題での場合分けは心臓に悪い。