← Home
For problem statement at 0-999/900-999/980-989/989/problemB.txt this is a correct solution, but verifier at 0-999/900-999/980-989/989/verifierB.go ends with All 100 tests passed can you fix the verifier? package main

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

func opposite(c byte) byte {
	if c == '0' {
		return '1'
	}
	return '0'
}

func main() {
	in := bufio.NewReader(os.Stdin)
	var n, p int
	var s string
	fmt.Fscan(in, &n, &p, &s)

	b := []byte(s)
	found := false

	for i := 0; i+p < n; i++ {
		if b[i] == '.' && b[i+p] == '.' {
			b[i] = '0'
			b[i+p] = '1'
			found = true
			break
		}
		if b[i] == '.' && b[i+p] != '.' {
			b[i] = opposite(b[i+p])
			found = true
			break
		}
		if b[i] != '.' && b[i+p] == '.' {
			b[i+p] = opposite(b[i])
			found = true
			break
		}
		if b[i] != b[i+p] {
			found = true
			break
		}
	}

	if !found {
		fmt.Print("No")
		return
	}

	for i := 0; i < n; i++ {
		if b[i] == '.' {
			b[i] = '0'
		}
	}

	fmt.Print(string(b))
}