| 123456789101112131415161718192021222324252627282930313233343536 | package mainimport "fmt"func main() {	var N int	fmt.Scan(&N)	for cid := 0; cid < N; cid++ {		var n int		fmt.Scan(&n)		a := make([]int, n)		for i := range a {			fmt.Scan(&a[i])		}		reward := make([]int, n)		for i, idx := 0, 0; i < n+2; i++ {			pre := (idx + n - 1) % n			if a[pre] < a[idx] && reward[idx] <= reward[pre] {				reward[idx] = reward[pre] + 1			}			idx = (idx + 1) % n		}		for i, idx := 0, 0; i < n+2; i++ {			nxt := (idx + 1) % n			if a[nxt] < a[idx] && reward[idx] <= reward[nxt] {				reward[idx] = reward[nxt] + 1			}			idx = (idx + n - 1) % n		}		sum := 0		for _, r := range reward {			sum += r		}		fmt.Println(sum + n)	}}
 |