← Home
For problem statement at 1000-1999/1800-1899/1840-1849/1846/problemB.txt this is a correct solution, but verifier at 1000-1999/1800-1899/1840-1849/1846/verifierB.go ends with All 80 tests passed can you fix the verifier? package main

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

func check(g []string, ch byte) bool {
	for i := 0; i < 3; i++ {
		if g[i][0] == ch && g[i][1] == ch && g[i][2] == ch {
			return true
		}
		if g[0][i] == ch && g[1][i] == ch && g[2][i] == ch {
			return true
		}
	}
	if g[0][0] == ch && g[1][1] == ch && g[2][2] == ch {
		return true
	}
	if g[0][2] == ch && g[1][1] == ch && g[2][0] == ch {
		return true
	}
	return false
}

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-- {
		g := make([]string, 3)
		for i := 0; i < 3; i++ {
			fmt.Fscan(in, &g[i])
		}

		if check(g, 'X') {
			fmt.Fprintln(out, "X")
		} else if check(g, 'O') {
			fmt.Fprintln(out, "O")
		} else if check(g, '+') {
			fmt.Fprintln(out, "+")
		} else {
			fmt.Fprintln(out, "DRAW")
		}
	}
}