← Home
For problem statement at 0-999/600-699/610-619/618/problemC.txt this is a correct solution, but verifier at 0-999/600-699/610-619/618/verifierC.go ends with All tests passed can you fix the verifier? package main

import (
	"bufio"
	"fmt"
	"os"
	"sort"
)

type Point struct {
	id int
	x  int64
	y  int64
}

func main() {
	reader := bufio.NewReader(os.Stdin)
	var n int
	if _, err := fmt.Fscan(reader, &n); err != nil {
		return
	}

	pts := make([]Point, n)
	for i := 0; i < n; i++ {
		fmt.Fscan(reader, &pts[i].x, &pts[i].y)
		pts[i].id = i + 1
	}

	sort.Slice(pts, func(i, j int) bool {
		if pts[i].x != pts[j].x {
			return pts[i].x < pts[j].x
		}
		return pts[i].y < pts[j].y
	})

	dx1 := pts[1].x - pts[0].x
	dy1 := pts[1].y - pts[0].y

	for i := 2; i < n; i++ {
		dx2 := pts[i].x - pts[0].x
		dy2 := pts[i].y - pts[0].y
		if dx1*dy2-dy1*dx2 != 0 {
			fmt.Printf("%d %d %d\n", pts[i-2].id, pts[i-1].id, pts[i].id)
			return
		}
	}
}