← Home
For problem statement at 2000-2999/2100-2199/2110-2119/2115/problemD.txt this is a correct solution, but verifier at 2000-2999/2100-2199/2110-2119/2115/verifierD.go ends with reference runtime error: exit status 2
5
10
73
0
15
15
1152921504606846971
1152921504606846975
0
0
263884751698461741
44176838605166056
341172298145778395
1152921504606845370
1152921504606846975
932979927677087223
0
0
1152921504606846975
1152921504606846975
0
1152921504606846975
535596011109665443
0
1106254410000660481
1152921504606846975
0
1152921504606846975
1152921504606846975
475620534037727377
1152921503751864319
0
0
4576285687810
1152921504606846975
897523379342028010
1152921504606846975
1152921504606846975
257334550161474175
381740582303527883
332473115697928749
597848593401238499
1152921504606846975
1014082958436577924
442916630291855988
1152921504606846975
1152921504606846975
766150596504742211
646409102999336773
67790125415367374
1152921504590856191
1152921504606846975
751192233844912430
1152921504606846975
1152921504606846975
39409267958475415
90915763948607458
0
1152921504606826132
626902596639253301
0
1152921504606846975
1152921504606846975
1152921504606846975
699905006975141167
736572511250248003
65536
0
1152921504606846975
839000307702162819
1152921504606846975
466046189490505885
0
1027544396533280512
1152921504606846975
965097204241964266
1152920576382337023
0
1030942532788301386
0
0
1152921504606846975
1152921490792644607
897291481011807015
1152921504606846975
0
412654767815137163
0
818747245888072400
650980932560517888
0
229933368775864413
1152921504606846975
1152921504606846975
192697820464993357
12418220032
459508629871797748
1152921504606846975
705568048327203108
0
1133600824356237903
745782165688635281
340001420492716832
1152921504606846975
699682469501027083
764172198242885826
0
0
0
737115844521049294
1152921504606782415
460799672445014178
0
373502371285501876
500912393662662117
607747655457351959
1033760848478674923
200621792442602175
1152921504606846975
722820931042842645
174271859898610933
0
1152921504606846975
39412101903186599
1152921218275999743
792663420313207611
1152921504606846975
471417094993057324
0
113258393842146902
1152921504606846975
0
788862291317319958
1152921504606846975
194117619138008750
panic: runtime error: negative shift amount

goroutine 1 [running]:
main.main()
	/home/ubuntu/codeforces/2000-2999/2100-2199/2110-2119/2115/2115D.go:83 +0x598

exit status 1 can you fix the verifier? ```go
package main

import (
	"io"
	"os"
	"strconv"
)

type FastScanner struct {
	data []byte
	idx  int
}

func (fs *FastScanner) skip() {
	for fs.idx < len(fs.data) && fs.data[fs.idx] <= ' ' {
		fs.idx++
	}
}

func (fs *FastScanner) NextUint64() uint64 {
	fs.skip()
	var v uint64
	for fs.idx < len(fs.data) {
		b := fs.data[fs.idx]
		if b < '0' || b > '9' {
			break
		}
		v = v*10 + uint64(b-'0')
		fs.idx++
	}
	return v
}

func (fs *FastScanner) NextString() string {
	fs.skip()
	start := fs.idx
	for fs.idx < len(fs.data) && fs.data[fs.idx] > ' ' {
		fs.idx++
	}
	return string(fs.data[start:fs.idx])
}

func main() {
	data, _ := io.ReadAll(os.Stdin)
	fs := FastScanner{data: data}

	t := int(fs.NextUint64())
	out := make([]byte, 0, t*24)

	for ; t > 0; t-- {
		n := int(fs.NextUint64())

		a := make([]uint64, n)
		d := make([]uint64, n)

		var base uint64
		for i := 0; i < n; i++ {
			a[i] = fs.NextUint64()
			base ^= a[i]
		}
		for i := 0; i < n; i++ {
			b := fs.NextUint64()
			d[i] = a[i] ^ b
		}
		c := fs.NextString()

		var basis [60]uint64
		var owner [60]byte

		for i := n - 1; i >= 0; i-- {
			v := d[i]
			for bit := 59; bit >= 0 && v != 0; bit-- {
				if ((v >> uint(bit)) & 1) == 0 {
					continue
				}
				if basis[bit] == 0 {
					basis[bit] = v
					owner[bit] = c[i]
					break
				}
				v ^= basis[bit]
			}
		}

		ans := base
		for bit := 59; bit >= 0; bit-- {
			if basis[bit] == 0 {
				continue
			}
			cur := (ans >> uint(bit)) & 1
			if owner[bit] == '0' {
				if cur == 1 {
					ans ^= basis[bit]
				}
			} else {
				if cur == 0 {
					ans ^= basis[bit]
				}
			}
		}

		out = strconv.AppendUint(out, ans, 10)
		out = append(out, '\n')
	}

	_, _ = os.Stdout.Write(out)
}
```