← Home
For problem statement at 0-999/200-299/250-259/250/problemB.txt this is a correct solution, but verifier at 0-999/200-299/250-259/250/verifierB.go ends with All 150 tests passed. can you fix the verifier? ```go
package main

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

func main() {
	scanner := bufio.NewScanner(os.Stdin)
	scanner.Scan()
	n := 0
	fmt.Sscanf(scanner.Text(), "%d", &n)
	
	for i := 0; i < n; i++ {
		scanner.Scan()
		ip := scanner.Text()
		fmt.Println(restore(ip))
	}
}

func restore(ip string) string {
	var blocks []string
	
	if strings.Contains(ip, "::") {
		parts := strings.SplitN(ip, "::", 2)
		left := parts[0]
		right := parts[1]
		
		var leftBlocks []string
		if left != "" {
			leftBlocks = strings.Split(left, ":")
		} else {
			leftBlocks = []string{}
		}
		
		var rightBlocks []string
		if right != "" {
			rightBlocks = strings.Split(right, ":")
		} else {
			rightBlocks = []string{}
		}
		
		missing := 8 - len(leftBlocks) - len(rightBlocks)
		blocks = append(blocks, leftBlocks...)
		for i := 0; i < missing; i++ {
			blocks = append(blocks, "0")
		}
		blocks = append(blocks, rightBlocks...)
	} else {
		blocks = strings.Split(ip, ":")
	}
	
	for i := range blocks {
		for len(blocks[i]) < 4 {
			blocks[i] = "0" + blocks[i]
		}
	}
	
	return strings.Join(blocks, ":")
}
```