← Home
For problem statement at 1000-1999/1200-1299/1200-1209/1204/problemD2.txt this is a correct solution, but verifier at 1000-1999/1200-1299/1200-1209/1204/verifierD2.go ends with test 7 failed: expected "010100100001000010011001011111010001111000001111011001100100100111101111110101011010001100001101010100100000000100001001100101000010001111000111111101000100100001100011110110100110110101010110010000001110001001111011001000100110000010111100010110001011010100110011101001000110000111000100101010110110110010001000010100111100001110101110111110110010011000111001000100010101000101000110011101010100110111100101011011100100010010001111000010111101011000011001011000111001101101110000001100011111110000001011010000001000100100000101100111111011000011001100101010010010110110001011010010101111111000001100101100000111010100001100000" got "010100100001000010011001000001010001111000000001011001100100100000100000010101001010001100000101010100100000000100001001100101000010000111000000000101000100100001100000010010100010010101010110010000001110001000001011001000100110000010011100010110001001010100110000101001000110000111000100101010010010110010001000010100111100000010100010000010110010011000011001000100010101000101000110000101010100010001100101001001100100010010001111000010000101011000011001011000011000100101110000001100001111110000001001010000001000100100000101100000001011000011001100101010010010010110001001010010100011111000001100101100000001010100001100000"

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

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

func main() {
	reader := bufio.NewReader(os.Stdin)
	s, _ := reader.ReadString('\n')
	s = s[:len(s)-1]
	n := len(s)
	t := make([]byte, n)
	i := 0
	for i < n {
		if s[i] == '0' {
			for ; i < n && s[i] == '0'; i++ {
				t[i] = '0'
			}
			continue
		}
		start := i
		for ; i < n && s[i] == '1'; i++ {}
		l1 := i - start
		l0 := 0
		k := i
		for ; k < n && s[k] == '0'; k++ {
			l0++
		}
		keep := 0
		if l0 > 0 {
			keep = min(l1, l0)
		}
		keep_start := start + l1 - keep
		for p := start; p < keep_start; p++ {
			t[p] = '0'
		}
		for p := keep_start; p < start + l1; p++ {
			t[p] = '1'
		}
		for p := i; p < i + l0; p++ {
			t[p] = '0'
		}
		i += l0
	}
	fmt.Println(string(t))
}

func min(a, b int) int {
	if a < b {
		return a
	}
	return b
}
```