← Home
For problem statement at 1000-1999/1800-1899/1840-1849/1842/problemH.txt this is a correct solution, but verifier at 1000-1999/1800-1899/1840-1849/1842/verifierH.go ends with mismatch on test 1
Input:
1 0
Expected: 0
Got: 1

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

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

func main() {
	reader := bufio.NewReader(os.Stdin)
	var n, m int
	if _, err := fmt.Fscan(reader, &n, &m); err != nil {
		return
	}

	maskPos := make([]int, n)
	maskNeg := make([]int, n)

	for k := 0; k < m; k++ {
		var t, i, j int
		fmt.Fscan(reader, &t, &i, &j)
		i--
		j--
		if t == 0 {
			maskPos[i] |= (1 << j)
			maskPos[j] |= (1 << i)
		} else {
			maskNeg[i] |= (1 << j)
			maskNeg[j] |= (1 << i)
		}
	}

	dp := make([]int, 1<<n)
	dp[0] = 1
	const mod = 998244353

	for mask := 1; mask < (1 << n); mask++ {
		var sum int
		for i := 0; i < n; i++ {
			if (mask & (1 << i)) != 0 {
				hasPos := (maskPos[i] & mask) != 0
				hasNeg := (maskNeg[i] & mask) != 0

				if hasPos && hasNeg {
					continue
				}

				val := dp[mask^(1<<i)]
				if !hasPos && !hasNeg {
					val <<= 1
					if val >= mod {
						val -= mod
					}
				}
				sum += val
				if sum >= mod {
					sum -= mod
				}
			}
		}
		dp[mask] = sum
	}

	total := dp[(1<<n)-1]

	denom := 1
	for i := 1; i <= n; i++ {
		denom = (denom * 2) % mod
		denom = (denom * i) % mod
	}

	ans := (total * power(denom, mod-2, mod)) % mod
	fmt.Println(ans)
}

func power(base, exp, mod int) int {
	res := 1
	base %= mod
	for exp > 0 {
		if exp%2 == 1 {
			res = (res * base) % mod
		}
		base = (base * base) % mod
		exp /= 2
	}
	return res
}
```