結果

問題 No.648  お や す み 
ユーザー tsuchinaga
提出日時 2019-03-28 13:06:42
言語 Go
(1.23.4)
結果
WA  
実行時間 -
コード長 529 bytes
コンパイル時間 14,235 ms
コンパイル使用メモリ 232,596 KB
実行使用メモリ 13,636 KB
最終ジャッジ日時 2024-10-12 19:03:14
合計ジャッジ時間 18,815 ms
ジャッジサーバーID
(参考情報)
judge2 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 33 WA * 6 TLE * 1 -- * 44
権限があれば一括ダウンロードができます

ソースコード

diff #

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 + 1
		}
		// fmt.Println(min, max, i, sheep(i), n)
	}

	if n == sheep(i) {
		fmt.Println("YES")
		fmt.Println(i)
	} else {
		fmt.Println("NO")
	}
}
0