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
}
```