結果

問題 No.680 作れる数
ユーザー srup٩(๑`н´๑)۶srup٩(๑`н´๑)۶
提出日時 2018-06-10 09:50:19
言語 C++11
(gcc 13.3.0)
結果
WA  
実行時間 -
コード長 612 bytes
コンパイル時間 1,227 ms
コンパイル使用メモリ 157,824 KB
実行使用メモリ 6,944 KB
最終ジャッジ日時 2024-06-30 13:13:13
合計ジャッジ時間 2,168 ms
ジャッジサーバーID
(参考情報)
judge5 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 18 WA * 2
権限があれば一括ダウンロードができます

ソースコード

diff #

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

#define rep(i,n) for(int i=0;i<(n);i++)
#define reps(i,f,n) for(int i=(f);i<(n);i++)


ll solve(ll d) {
	ll ret = d;
	while(d > 1) {
		if (d % 2 == 0) d /= 2;
		else d--, d/= 2;

		ret += d;
	}
	return ret;
}


int main(int argc, char const *argv[])
{
	ll n; cin >> n;

	int l = 1, r = 1e9 + 1;

	while(r - l > 1) {
		ll m = (l + r) / 2;
		// printf("%lld %lld %lld\n", l, m, r);
		ll sum = solve(m);
		if (sum == n) {
			printf("YES\n");
			return 0;
		} else if (sum < n) {
			l = m;
		} else {
			r = m;
		}
	}
	printf("NO\n");
	return 0;
}
0