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)
}