← Home
For problem statement at 0-999/800-899/860-869/862/problemD.txt this is a correct solution, but verifier at 0-999/800-899/860-869/862/verifierD.go ends with Test 1 exec err signal: killed
Test 2 exec err signal: killed
Test 3 exec err signal: killed
Test 4 exec err signal: killed
Test 5 bad output 00
10
! 2 1
Test 6 exec err signal: killed
Test 7 exec err signal: killed
Test 8 exec err signal: killed
Test 9 exec err signal: killed
Test 10 exec err signal: killed
Test 11 exec err signal: killed
Test 12 exec err signal: killed
Test 13 exec err signal: killed
Test 14 exec err signal: killed
Test 15 exec err signal: killed
Test 16 exec err signal: killed
Test 17 bad output 0000
1100
1000
! 2 1
Test 18 exec err signal: killed
Test 19 exec err signal: killed
Test 20 exec err signal: killed
Test 21 exec err signal: killed
Test 22 exec err signal: killed
Test 23 bad output 0000
1100
1000
! 2 1
Test 24 exec err signal: killed
Test 25 exec err signal: killed
Test 26 exec err signal: killed
Test 27 exec err signal: killed
Test 28 exec err signal: killed
Test 29 exec err signal: killed
Test 30 exec err signal: killed
Test 31 exec err signal: killed
Test 32 exec err signal: killed
Test 33 exec err signal: killed
Test 34 exec err signal: killed
Test 35 bad output 00
10
! 2 1
Test 36 exec err signal: killed
Test 37 exec err signal: killed
Test 38 exec err signal: killed
Test 39 bad output 00
10
! 2 1
Test 40 exec err signal: killed
Test 41 exec err signal: killed
Test 42 exec err signal: killed
Test 43 exec err signal: killed
Test 44 bad output 00
10
! 2 1
Test 45 exec err signal: killed
Test 46 exec err signal: killed
Test 47 exec err signal: killed
Test 48 exec err signal: killed
Test 49 bad output 000
110
100
! 2 1
Test 50 exec err signal: killed
Test 51 bad output 0000
1100
1000
! 2 1
Test 52 exec err signal: killed
Test 53 exec err signal: killed
Test 54 exec err signal: killed
Test 55 exec err signal: killed
Test 56 exec err signal: killed
Test 57 exec err signal: killed
Test 58 exec err signal: killed
Test 59 exec err signal: killed
Test 60 exec err signal: killed
Test 61 exec err signal: killed
Test 62 exec err signal: killed
Test 63 exec err signal: killed
Test 64 exec err signal: killed
Test 65 exec err signal: killed
Test 66 exec err signal: killed
Test 67 exec err signal: killed can you fix the verifier? package main

import (
	"fmt"
)

func main() {
	var n int
	fmt.Scan(&n)

	query := func(L, R int) int {
		s := make([]byte, n)
		for i := 0; i < n; i++ {
			s[i] = '0'
		}
		for i := L - 1; i <= R - 1; i++ {
			s[i] = '1'
		}
		fmt.Println(string(s))
		var dist int
		fmt.Scan(&dist)
		return dist
	}

	D := query(0, -1)

	var pos0, pos1 int
	var search func(L, R int)
	var find1 func(L, R int)
	var find0 func(L, R int)

	find1 = func(L, R int) {
		if L == R {
			pos1 = L
			return
		}
		mid := (L + R) / 2
		K := mid - L + 1
		dist := query(L, mid)
		x := (D + K - dist) / 2
		if x > 0 {
			find1(L, mid)
		} else {
			find1(mid+1, R)
		}
	}

	find0 = func(L, R int) {
		if L == R {
			pos0 = L
			return
		}
		mid := (L + R) / 2
		K := mid - L + 1
		dist := query(L, mid)
		x := (D + K - dist) / 2
		if x < K {
			find0(L, mid)
		} else {
			find0(mid+1, R)
		}
	}

	search = func(L, R int) {
		mid := (L + R) / 2
		K := mid - L + 1
		dist := query(L, mid)
		x := (D + K - dist) / 2

		if x == 0 {
			pos0 = L
			find1(mid+1, R)
		} else if x == K {
			pos1 = L
			find0(mid+1, R)
		} else {
			search(L, mid)
		}
	}

	search(1, n)
	fmt.Printf("! %d %d\n", pos0, pos1)
}