← Home
For problem statement at 1000-1999/1300-1399/1360-1369/1363/problemD.txt this is a correct solution, but verifier at 1000-1999/1300-1399/1360-1369/1363/verifierD.go ends with Problem D is interactive and cannot be automatically verified. can you fix the verifier? ```go
package main

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

func query(writer *bufio.Writer, reader *bufio.Reader, indices []int) int {
	fmt.Fprintf(writer, "? %d", len(indices))
	for _, idx := range indices {
		fmt.Fprintf(writer, " %d", idx)
	}
	fmt.Fprintln(writer)
	writer.Flush()

	var result int
	fmt.Fscan(reader, &result)
	return result
}

func main() {
	reader := bufio.NewReader(os.Stdin)
	writer := bufio.NewWriter(os.Stdout)

	var t int
	fmt.Fscan(reader, &t)

	for tc := 0; tc < t; tc++ {
		var n, k int
		fmt.Fscan(reader, &n, &k)

		inSubset := make([]int, n+1)

		for i := 0; i < k; i++ {
			var c int
			fmt.Fscan(reader, &c)
			for j := 0; j < c; j++ {
				var idx int
				fmt.Fscan(reader, &idx)
				inSubset[idx] = i + 1
			}
		}

		allIndices := make([]int, n)
		for i := 0; i < n; i++ {
			allIndices[i] = i + 1
		}
		globalMax := query(writer, reader, allIndices)

		candidates := make([]int, n)
		for i := 0; i < n; i++ {
			candidates[i] = i + 1
		}

		for len(candidates) > 1 {
			mid := len(candidates) / 2
			left := candidates[:mid]
			result := query(writer, reader, left)
			if result == globalMax {
				candidates = left
			} else {
				candidates = candidates[mid:]
			}
		}
		maxPos := candidates[0]

		maxSubset := inSubset[maxPos]

		password := make([]int, k)
		for i := 0; i < k; i++ {
			if i+1 == maxSubset {
				notInSi := make([]int, 0, n)
				for j := 1; j <= n; j++ {
					if inSubset[j] != i+1 {
						notInSi = append(notInSi, j)
					}
				}
				password[i] = query(writer, reader, notInSi)
			} else {
				password[i] = globalMax
			}
		}

		fmt.Fprintf(writer, "!")
		for i := 0; i < k; i++ {
			fmt.Fprintf(writer, " %d", password[i])
		}
		fmt.Fprintln(writer)
		writer.Flush()

		var response string
		fmt.Fscan(reader, &response)
	}
}
```