For problem statement at 1000-1999/1800-1899/1860-1869/1866/problemI.txt this is a correct solution, but verifier at 1000-1999/1800-1899/1860-1869/1866/verifierI.go ends with case 50 (random_50) failed: expected Chaneka, got Bhinneka
candidate output:
Bhinneka
input:
77 81 6
48 49
56 9
45 28
39 69
28 7
48 12
exit status 1 can you fix the verifier? package main
import (
"fmt"
"io"
"os"
)
func readInt(b []byte, i *int) int {
for *i < len(b) && (b[*i] < '0' || b[*i] > '9') {
*i++
}
if *i >= len(b) {
return 0
}
res := 0
for *i < len(b) && b[*i] >= '0' && b[*i] <= '9' {
res = res*10 + int(b[*i]-'0')
*i++
}
return res
}
func main() {
b, _ := io.ReadAll(os.Stdin)
idx := 0
n := readInt(b, &idx)
if n == 0 {
return
}
m := readInt(b, &idx)
k := readInt(b, &idx)
max_spec := make([]int, n+1)
spec_cols := make([][]int, n+1)
for i := 0; i < k; i++ {
r := readInt(b, &idx)
c := readInt(b, &idx)
if c > max_spec[r] {
max_spec[r] = c
}
spec_cols[r] = append(spec_cols[r], c)
}
in_avail := make([]bool, m+1)
for i := 1; i <= m; i++ {
in_avail[i] = true
}
max_avail := m
winner := "Chaneka"
for r := n; r >= 1; r-- {
for max_avail > 0 && !in_avail[max_avail] {
max_avail--
}
a_max := max_avail
c_max := max_spec[r]
if a_max > c_max {
in_avail[a_max] = false
if r == 1 && a_max == 1 {
winner = "Bhinneka"
}
}
for _, c := range spec_cols[r] {
in_avail[c] = false
}
}
fmt.Println(winner)
}