← Home
For problem statement at 1000-1999/1700-1799/1770-1779/1779/problemE.txt this is a correct solution, but verifier at 1000-1999/1700-1799/1770-1779/1779/verifierE.go ends with expected "Problem E is interactive and cannot be automatically solved." got ""exit status 1 can you fix the verifier? package main

import (
	"fmt"
	"sort"
)

func main() {
	var t int
	if _, err := fmt.Scan(&t); err != nil {
		return
	}
	for tc := 0; tc < t; tc++ {
		var n int
		fmt.Scan(&n)

		if n == 1 {
			fmt.Println("! 1")
			continue
		}

		type Player struct {
			id int
			d  int
		}
		players := make([]Player, n)

		for i := 1; i <= n; i++ {
			mask := make([]byte, n)
			for j := 0; j < n; j++ {
				if i-1 == j {
					mask[j] = '0'
				} else {
					mask[j] = '1'
				}
			}
			fmt.Printf("? %d %s\n", i, string(mask))
			var d int
			fmt.Scan(&d)
			players[i-1] = Player{id: i, d: d}
		}

		sort.Slice(players, func(i, j int) bool {
			return players[i].d < players[j].d
		})

		sum := 0
		cut := 0
		for i := 0; i < n-1; i++ {
			sum += players[i].d
			k := i + 1
			if sum == k*(k-1)/2 {
				cut = k
			}
		}

		ans := make([]byte, n)
		for i := 0; i < n; i++ {
			ans[i] = '0'
		}
		for i := cut; i < n; i++ {
			ans[players[i].id-1] = '1'
		}
		fmt.Printf("! %s\n", string(ans))
	}
}