結果

問題 No.3016 ハチマキおじさん
ユーザー ID 21712
提出日時 2025-03-13 14:10:58
言語 Go
(1.23.4)
結果
AC  
実行時間 249 ms / 2,000 ms
コード長 707 bytes
コンパイル時間 13,655 ms
コンパイル使用メモリ 244,648 KB
実行使用メモリ 14,340 KB
最終ジャッジ日時 2025-03-13 14:11:23
合計ジャッジ時間 22,980 ms
ジャッジサーバーID
(参考情報)
judge1 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 31
権限があれば一括ダウンロードができます

ソースコード

diff #

package main

import . "fmt"
import . "sort"
import . "os"
import bf "bufio"

func main() {
	rd := bf.NewReader(Stdin)
	var n int
	Fscan(rd,&n)
	a := make([]int, n)
	b := make([]int, n-1)
	for i := range a {
		Fscan(rd,&a[i])
	}
	for i := range b {
		Fscan(rd,&b[i])
	}
	Ints(a)
	Ints(b)
	var sum int64
	for i, v := range b {
		sum += int64(abs(a[i+1]-v))
	}
	min := sum
	t := []any{a[0]}
	for i, v := range a[:n-1] {
		sum += int64(abs(v-b[i])-abs(a[i+1]-b[i]))
		if sum < min {
			min = sum
			t = []any{a[i+1]}
		} else if sum == min {
			if t[len(t)-1].(int) != a[i+1] {
				t = append(t, a[i+1])
			}
		}
	}
	Println(len(t))
	Println(t...)
}

func abs(a int) int{
	if a < 0 {
		return -a
	}
	return a
}
0