結果
| 問題 | 
                            No.609 Noelちゃんと星々
                             | 
                    
| コンテスト | |
| ユーザー | 
                             fmhr
                         | 
                    
| 提出日時 | 2017-12-09 00:32:00 | 
| 言語 | Go  (1.23.4)  | 
                    
| 結果 | 
                             
                                WA
                                 
                             
                            
                         | 
                    
| 実行時間 | - | 
| コード長 | 576 bytes | 
| コンパイル時間 | 10,988 ms | 
| コンパイル使用メモリ | 235,824 KB | 
| 実行使用メモリ | 7,956 KB | 
| 最終ジャッジ日時 | 2024-11-29 20:44:44 | 
| 合計ジャッジ時間 | 29,431 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge1 / judge4 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| other | AC * 7 WA * 18 | 
ソースコード
package main
import (
	"fmt"
)
var N int
var Y []int
func main() {
	fmt.Scan(&N)
	Y = make([]int, N)
	for i := 0; i < N; i++ {
		fmt.Scan(&Y[i])
	}
	maxY := max(Y)
	lb := -1
	ub := maxY
	for ub-lb > 1 {
		mid := (ub + lb) / 2
		if cal(lb) < cal(ub) {
			ub = mid
		} else {
			lb = mid
		}
	}
	fmt.Println(cal(lb + 1))
}
func cal(m int) int {
	r := 0
	for i := range Y {
		r += abs(m - Y[i])
	}
	return r
}
func max(n []int) int {
	r := n[0]
	for i := range n {
		if r < n[i] {
			r = n[i]
		}
	}
	return r
}
func abs(a int) int {
	if a > 0 {
		return a
	}
	return -a
}
            
            
            
        
            
fmhr