For problem statement at 1000-1999/1700-1799/1770-1779/1776/problemI.txt this is a correct solution, but verifier at 1000-1999/1700-1799/1770-1779/1776/verifierI.go ends with candidate runtime error on test 1: exit status 2
exit status 1 can you fix the verifier? ```go
package main
import (
"fmt"
)
type Point struct {
id int
x int64
y int64
}
func abs(x int64) int64 {
if x < 0 {
return -x
}
return x
}
func area(p1, p2, p3 Point) int64 {
return abs((p2.x-p1.x)*(p3.y-p1.y) - (p3.x-p1.x)*(p2.y-p1.y))
}
func main() {
var n int
fmt.Scan(&n)
pts := make([]Point, n)
for i := 0; i < n; i++ {
fmt.Scan(&pts[i].x, &pts[i].y)
pts[i].id = i + 1
}
active := make([]bool, n+1)
for i := 1; i <= n; i++ {
active[i] = true
}
getPolygon := func() []Point {
var poly []Point
for _, p := range pts {
if active[p.id] {
poly = append(poly, p)
}
}
return poly
}
isAlberto := (n%2 == 0)
if isAlberto {
fmt.Println("Alberto")
} else {
fmt.Println("Beatrice")
}
target := make(map[int]bool)
colorChosen := false
for turns := 0; turns < n-2; turns++ {
myTurn := (isAlberto && turns%2 == 0) || (!isAlberto && turns%2 == 1)
poly := getPolygon()
if !colorChosen && myTurn {
m := len(poly)
var sumEven, sumOdd int64
for i := 0; i < m; i++ {
p1 := poly[(i-1+m)%m]
p2 := poly[i]
p3 := poly[(i+1)%m]
a := area(p1, p2, p3)
if i%2 == 0 {
sumEven += a
} else {
sumOdd += a
}
}
if sumEven <= sumOdd {
for i := 0; i < m; i += 2 {
target[poly[i].id] = true
}
} else {
for i := 1; i < m; i += 2 {
target[poly[i].id] = true
}
}
colorChosen = true
}
if myTurn {
m := len(poly)
bestArea := int64(-1)
bestIdx := -1
for i := 0; i < m; i++ {
if target[poly[i].id] {
p1 := poly[(i-1+m)%m]
p2 := poly[i]
p3 := poly[(i+1)%m]
a := area(p1, p2, p3)
if bestArea == -1 || a < bestArea {
bestArea = a
bestIdx = poly[i].id
}
}
}
fmt.Println(bestIdx)
active[bestIdx] = false
} else {
var move int
fmt.Scan(&move)
active[move] = false
}
}
}
```