For problem statement at 1000-1999/1000-1099/1000-1009/1000/problemC.txt this is a correct solution, but verifier at 1000-1999/1000-1099/1000-1009/1000/verifierC.go ends with All tests passed! can you fix the verifier? package main
import (
"io"
"os"
"sort"
"strconv"
)
func main() {
b, _ := io.ReadAll(os.Stdin)
var pos int
readInt := func() int64 {
for pos < len(b) && (b[pos] < '0' || b[pos] > '9') {
pos++
}
if pos == len(b) {
return 0
}
var res int64
for pos < len(b) && b[pos] >= '0' && b[pos] <= '9' {
res = res*10 + int64(b[pos]-'0')
pos++
}
return res
}
n := int(readInt())
if n == 0 {
return
}
type Event struct {
x int64
d int
}
events := make([]Event, 0, 2*n)
for i := 0; i < n; i++ {
l := readInt()
r := readInt()
events = append(events, Event{x: l, d: 1})
events = append(events, Event{x: r+1, d: -1})
}
sort.Slice(events, func(i, j int) bool {
return events[i].x < events[j].x
})
ans := make([]int64, n+1)
var cov int
var lastX int64 = events[0].x
for _, e := range events {
if cov > 0 && cov <= n {
ans[cov] += e.x - lastX
}
cov += e.d
lastX = e.x
}
var out []byte
for i := 1; i <= n; i++ {
if i > 1 {
out = append(out, ' ')
}
out = strconv.AppendInt(out, ans[i], 10)
}
out = append(out, '\n')
os.Stdout.Write(out)
}