← Home
For problem statement at 1000-1999/1600-1699/1600-1609/1601/problemD.txt this is a correct solution, but verifier at 1000-1999/1600-1699/1600-1609/1601/verifierD.go ends with case 66 failed
expected: 4
got: 3

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

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

type Alpinist struct {
	s, a int
}

func main() {
	reader := bufio.NewReaderSize(os.Stdin, 65536)
	n := readInt(reader)
	d := readInt(reader)

	valid := make([]Alpinist, 0, n)
	for i := 0; i < n; i++ {
		s := readInt(reader)
		a := readInt(reader)
		if s >= d {
			valid = append(valid, Alpinist{s, a})
		}
	}

	sort.Slice(valid, func(i, j int) bool {
		if valid[i].a != valid[j].a {
			return valid[i].a < valid[j].a
		}
		return valid[i].s < valid[j].s
	})

	ans := 0
	p := d
	for _, a := range valid {
		if a.s >= p {
			ans++
			if a.a > p {
				p = a.a
			}
		}
	}

	fmt.Println(ans)
}

func readInt(reader *bufio.Reader) int {
	var n int
	var c byte
	var err error
	for {
		c, err = reader.ReadByte()
		if err != nil {
			return n
		}
		if c >= '0' && c <= '9' {
			break
		}
	}
	n = int(c - '0')
	for {
		c, err = reader.ReadByte()
		if err != nil || c < '0' || c > '9' {
			break
		}
		n = n*10 + int(c - '0')
	}
	return n
}
```