結果

問題 No.648  お や す み 
ユーザー ant2357
提出日時 2018-11-26 01:19:46
言語 C++17
(gcc 13.3.0 + boost 1.87.0)
結果
WA  
実行時間 -
コード長 883 bytes
コンパイル時間 2,103 ms
コンパイル使用メモリ 193,256 KB
最終ジャッジ日時 2025-01-06 17:41:06
ジャッジサーバーID
(参考情報)
judge2 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 53 WA * 31
権限があれば一括ダウンロードができます

ソースコード

diff #

#include "bits/stdc++.h"

using namespace std;

using ll = long long;
using ld = long double;

const double PI = 3.1415926535897932384626433832795;

const int dx[] = { 0, 1, 0, -1 };
const int dy[] = { -1, 0, 1, 0 };

int gcd(int x, int y) { return y ? gcd(y, x % y) : abs(x); }
ll gcd(ll x, ll y) { return y ? gcd(y, x % y) : abs(x); }
int lcm(int x, int y) { return x / gcd(x, y) * y; }
ll lcm(ll x, ll y) { return x / gcd(x, y) * y; }

bool solve(ll n) {
	auto f = [](ll v) { return v * (v + 1) / 2LL; };

	ll left = 0, right = INT_MAX / 2;
	while (abs(right - left) > 1LL) {
		ll mid = (left + right) / 2LL;
		ll v = f(mid);

		if (v == n) {
			return true;
		}

		if (n < v) {
			right = mid;
		} else {
			left = mid;
		}
	}

	return false;
}

int main() {
	ios::sync_with_stdio(false);
	cin.tie(0);

	ll n;
	cin >> n;

	cout << (solve(n) ? "YES" : "NO") << endl;
	return 0;
}
0