[yukicoder] No. 1256 連続整数列

2020年12月12日

問題

方針

\( A = 1 \) のとき条件を満たす連続整数列は存在しません。負の整数の数を \( m \)、正の整数の数を \( n \) とすると、\( n > m \) を満たす必要があり、\( n= m + 1 \) のとき、連続整数列の和は \( m + 1 \) となります。\( n + m \geq 1 \) より、\( m \neq 0 \) なので、\( A = 1 \) のとき存在しないことが分かります。また、\( n > m + 1 \) のとき、連続整数列の和は \( 1 \) より大きくなります。

一方で、\( A \neq 1 \) のとき、\( n = m + 1 \) とすることで、\( m + 1 = A \) を満たす \( m \) が存在します。

コード

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

int main() {
    int A;
    cin >> A;
    if (A == 1) {
        cout << "NO\n";
    } else {
        cout << "YES\n";
    }
    return 0;
}