← Home
For problem statement at 1000-1999/1500-1599/1530-1539/1536/problemC.txt this is a correct solution, but verifier at 1000-1999/1500-1599/1530-1539/1536/verifierC.go ends with All tests passed can you fix the verifier? package main

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

type pair struct {
	d, k int
}

func gcd(a, b int) int {
	for b != 0 {
		a, b = b, a%b
	}
	return a
}

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

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

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

		counts := make(map[pair]int)
		d, k := 0, 0
		for j := 0; j < n; j++ {
			if s[j] == 'D' {
				d++
			} else {
				k++
			}
			g := gcd(d, k)
			p := pair{d / g, k / g}
			counts[p]++
			if j > 0 {
				writer.WriteByte(' ')
			}
			fmt.Fprint(writer, counts[p])
		}
		writer.WriteByte('\n')
	}
}