結果

問題 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
権限があれば一括ダウンロードができます

ソースコード

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
		}

		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")
	}
}
0