For problem statement at 1000-1999/1000-1099/1080-1089/1081/problemE.txt this is a correct solution, but verifier at 1000-1999/1000-1099/1080-1089/1081/verifierE.go ends with oracle failed on test 1: runtime error: exit status 2
panic: runtime error: index out of range [2] with length 2
goroutine 1 [running]:
main.main()
/home/ubuntu/codeforces/1000-1999/1000-1099/1080-1089/1081/1081E.go:47 +0x4d4
input:
2
1
exit status 1 can you fix the verifier? package main
import (
"bufio"
"io"
"os"
"strconv"
)
func main() {
data, _ := io.ReadAll(os.Stdin)
idx := 0
nextInt := func() int64 {
for idx < len(data) && (data[idx] < '0' || data[idx] > '9') && data[idx] != '-' {
idx++
}
sign := int64(1)
if idx < len(data) && data[idx] == '-' {
sign = -1
idx++
}
val := int64(0)
for idx < len(data) && data[idx] >= '0' && data[idx] <= '9' {
val = val*10 + int64(data[idx]-'0')
idx++
}
return val * sign
}
n := int(nextInt())
m := n / 2
d := make([]int64, m)
for i := 0; i < m; i++ {
d[i] = nextInt()
}
ans := make([]int64, n)
prev := int64(0)
for i := 0; i < m; i++ {
dd := d[i]
best := int64(-1)
for j := int64(1); j*j <= dd; j++ {
if dd%j == 0 {
p := j
q := dd / j
if ((p + q) & 1) == 0 {
a := (q - p) / 2
u := a * a
if u > prev && (best == -1 || u < best) {
best = u
}
}
}
}
if best == -1 {
w := bufio.NewWriter(os.Stdout)
w.WriteString("No\n")
w.Flush()
return
}
ans[2*i] = best - prev
ans[2*i+1] = dd
prev = best + dd
}
w := bufio.NewWriter(os.Stdout)
w.WriteString("Yes\n")
for i := 0; i < n; i++ {
if i > 0 {
w.WriteByte(' ')
}
w.WriteString(strconv.FormatInt(ans[i], 10))
}
w.WriteByte('\n')
w.Flush()
}