結果
問題 |
No.648 お や す み
|
ユーザー |
![]() |
提出日時 | 2018-11-04 19:04:08 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 395 bytes |
コンパイル時間 | 427 ms |
コンパイル使用メモリ | 53,976 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-11-20 20:01:43 |
合計ジャッジ時間 | 2,599 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 84 |
ソースコード
#include <iostream> using namespace std; long n; bool ok(long k) { return k * (k + 1) >= 2 * n; } int main() { cin >> n; long lo = 0; long hi = 2000000000; while (hi - lo > 1) { long mid = (lo + hi) / 2; if (ok(mid)) { hi = mid; } else { lo = mid; } } if (hi * (hi + 1) == n * 2) { cout << "YES" << endl; cout << hi << endl; } else { cout << "NO" << endl; } }