結果
| 問題 |
No.648 お や す み
|
| コンテスト | |
| ユーザー |
tsuchinaga
|
| 提出日時 | 2019-03-28 13:09:41 |
| 言語 | Go (1.23.4) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 559 bytes |
| コンパイル時間 | 14,183 ms |
| コンパイル使用メモリ | 222,736 KB |
| 実行使用メモリ | 6,824 KB |
| 最終ジャッジ日時 | 2024-10-12 19:08:41 |
| 合計ジャッジ時間 | 16,272 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 78 WA * 6 |
ソースコード
package main
import (
"fmt"
"math"
)
func main() {
var n int
_, _ = fmt.Scan(&n)
sheep := func(i int) int { return (int(math.Pow(float64(i), 2)) + i) / 2 }
i := 0
min, max := 1, int(math.Pow10(9))*2
for min != max {
i = int(math.Ceil(float64(max-min)/2)) + min
s := sheep(i)
if s == n {
min, max = i, i
} else if s > n {
max = i - 1
} else {
min = i
}
if max == min {
i = max
}
// fmt.Println(min, max, i, sheep(i), n)
}
if n == sheep(i) {
fmt.Println("YES")
fmt.Println(i)
} else {
fmt.Println("NO")
}
}
tsuchinaga