For problem statement at 1000-1999/1200-1299/1200-1209/1203/problemF1.txt this is a correct solution, but verifier at 1000-1999/1200-1299/1200-1209/1203/verifierF1.go ends with case 4 failed: expected NO got YES
input:2 6
6 -300
96 -207
exit status 1 can you fix the verifier? ```go
package main
import (
"bufio"
"fmt"
"os"
"sort"
)
type Project struct {
a int
b int
}
func main() {
scanner := bufio.NewScanner(os.Stdin)
scanner.Split(bufio.ScanWords)
scanner.Scan()
n := atoi(scanner.Text())
scanner.Scan()
r := atoi(scanner.Text())
pos := make([]Project, 0)
neg := make([]Project, 0)
for i := 0; i < n; i++ {
scanner.Scan()
a := atoi(scanner.Text())
scanner.Scan()
b := atoi(scanner.Text())
if b >= 0 {
pos = append(pos, Project{a, b})
} else {
neg = append(neg, Project{a, b})
}
}
sort.Slice(pos, func(i, j int) bool {
return pos[i].a < pos[j].a
})
sort.Slice(neg, func(i, j int) bool {
return neg[i].a+neg[i].b > neg[j].a+neg[j].b
})
for _, p := range pos {
if r < p.a {
fmt.Println("NO")
return
}
r += p.b
}
for _, p := range neg {
if r < p.a {
fmt.Println("NO")
return
}
r += p.b
if r < 0 {
fmt.Println("NO")
return
}
}
fmt.Println("YES")
}
func atoi(s string) int {
n := 0
for i := 0; i < len(s); i++ {
n = n*10 + int(s[i]-'0')
}
return n
}
```