← Home
For problem statement at 1000-1999/1300-1399/1390-1399/1392/problemD.txt this is a correct solution, but verifier at 1000-1999/1300-1399/1390-1399/1392/verifierD.go ends with Wrong Answer
Expected:
1
1
4
1
3
1
3
2
0
2
3
1
0
0
3
4
1
1
2
2
1
2
0
4
4
3
1
0
3
2
4
3
1
2
3
3
1
1
2
4
3
0
3
2
1
4
2
2
4
2
2
0
2
1
1
3
0
3
0
1
3
0
1
5
3
0
3
3
2
1
1
0
4
1
0
1
1
4
2
4
3
1
3
2
4
2
1
2
2
2
3
2
1
2
1
0
4
2
2
0

Got:
1
1
2
1
2
1
1
0
1
2
1
1
0
1
1
2
0
0
2
1
1
1
1
3
2
1
0
0
1
1
1
2
1
1
1
1
1
0
1
2
1
0
1
0
0
1
0
1
3
2
0
0
1
1
0
2
0
1
0
0
1
1
1
3
1
0
1
1
1
1
1
1
2
1
0
0
1
3
1
1
0
1
2
1
1
2
1
1
1
0
1
1
1
1
1
1
1
1
0
1


exit status 1 can you fix the verifier? ```go
package main

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

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

	var t int
	fmt.Fscan(in, &t)
	for ; t > 0; t-- {
		var n int
		var s string
		fmt.Fscan(in, &n)
		fmt.Fscan(in, &s)

		allSame := true
		for i := 1; i < n; i++ {
			if s[i] != s[0] {
				allSame = false
				break
			}
		}
		if allSame {
			fmt.Fprintln(out, (n+2)/3)
			continue
		}

		start := 0
		for i := 0; i < n; i++ {
			if s[i] != s[(i+1)%n] {
				start = (i + 1) % n
				break
			}
		}

		ans := 0
		run := 1
		for j := 1; j < n; j++ {
			prev := (start + j - 1) % n
			curr := (start + j) % n
			if s[curr] == s[prev] {
				run++
			} else {
				ans += run / 3
				run = 1
			}
		}
		ans += run / 3

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