For problem statement at 0-999/900-999/960-969/961/problemD.txt this is a correct solution, but verifier at 0-999/900-999/960-969/961/verifierD.go ends with All tests passed can you fix the verifier? package main
import (
"bufio"
"fmt"
"os"
)
type Point struct {
x, y int64
}
func collinear(a, b, c Point) bool {
return (b.x-a.x)*(c.y-a.y)-(b.y-a.y)*(c.x-a.x) == 0
}
func check(p []Point, i, j int) bool {
c, d := -1, -1
for k := 0; k < len(p); k++ {
if !collinear(p[i], p[j], p[k]) {
if c == -1 {
c = k
} else if d == -1 {
d = k
} else if !collinear(p[c], p[d], p[k]) {
return false
}
}
}
return true
}
func main() {
in := bufio.NewReaderSize(os.Stdin, 1<<20)
var n int
fmt.Fscan(in, &n)
p := make([]Point, n)
for i := 0; i < n; i++ {
fmt.Fscan(in, &p[i].x, &p[i].y)
}
if n <= 4 || check(p, 0, 1) || check(p, 0, 2) || check(p, 1, 2) {
fmt.Println("YES")
} else {
fmt.Println("NO")
}
}