← Home
 ```go
package main

import (
	"bufio"
	"fmt"
	"os"
)

func main() {
	reader := bufio.NewReader(os.Stdin)
	writer := bufio.NewWriter(os.Stdout)
	defer writer.Flush()

	var n int
	fmt.Fscan(reader, &n)

	ans := 0
	speedStack := make([]int, 0)
	overtakeCount := 0

	for i := 0; i < n; i++ {
		var t int
		fmt.Fscan(reader, &t)

		switch t {
		case 1:
			var s int
			fmt.Fscan(reader, &s)
			for len(speedStack) > 0 && speedStack[len(speedStack)-1] < s {
				speedStack = speedStack[:len(speedStack)-1]
				ans++
			}
		case 2:
			if overtakeCount > 0 {
				ans += overtakeCount
				overtakeCount = 0
			}
		case 3:
			var s int
			fmt.Fscan(reader, &s)
			speedStack = append(speedStack, s)
		case 4:
			overtakeCount = 0
		case 5:
			speedStack = speedStack[:0]
		case 6:
			overtakeCount++
		}
	}

	fmt.Fprintln(writer, ans)
}
```