結果
問題 | No.648 お や す み |
ユーザー |
![]() |
提出日時 | 2018-02-09 23:11:25 |
言語 | D (dmd 2.109.1) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 559 bytes |
コンパイル時間 | 798 ms |
コンパイル使用メモリ | 98,460 KB |
実行使用メモリ | 6,948 KB |
最終ジャッジ日時 | 2024-06-12 23:49:39 |
合計ジャッジ時間 | 2,516 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 84 |
ソースコード
import std.stdio; import std.range; import std.array; import std.string; import std.conv; import std.typecons; import std.algorithm; ulong f(ulong n) { return (n + 1) * n / 2; } void main() { ulong n = readln.chomp.to!ulong; ulong left = 0; ulong right = 2e9.to!ulong; while (right - left > 1) { ulong mid = (left + right) / 2; ulong val = mid.f; if (val > n) { right = mid; } else { left = mid; } } ulong val = left.f; if (val == n) { "YES".writeln; left.writeln; } else { "NO".writeln; } }