package main import ( "bufio" "fmt" "os" "strconv" ) func main() { count := 0 windows := [4]int{0, 0, 0, 0} i := 1 s := bufio.NewScanner(os.Stdin) for s.Scan() { currentWindow := i % 4 nextWindow := (i + 1) % 4 value, _ := strconv.Atoi(s.Text()) for j := 0; j < 4; j++ { if j != currentWindow { windows[j] += value } } //fmt.Println(value, windows, currentWindow, nextWindow, windows[nextWindow], windows[currentWindow]) // skip the first 3 values to populate the windows if i > 3 && windows[nextWindow] > windows[currentWindow] { count++ } windows[currentWindow] = 0 i++ } fmt.Println(count) }