← Home
For problem statement at 0-999/900-999/970-979/975/problemC.txt this is a correct solution, but verifier at 0-999/900-999/970-979/975/verifierC.go ends with All tests passed can you fix the verifier? package main

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

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

func main() {
	in := bufio.NewReader(os.Stdin)
	out := bufio.NewWriter(os.Stdout)
	defer out.Flush()

	n := int(readInt(in))
	q := int(readInt(in))

	p := make([]int64, n)
	var sum int64
	for i := 0; i < n; i++ {
		sum += readInt(in)
		p[i] = sum
	}

	var currentArrows int64
	for i := 0; i < q; i++ {
		currentArrows += readInt(in)

		if currentArrows >= p[n-1] {
			currentArrows = 0
			fmt.Fprintln(out, n)
		} else {
			idx := sort.Search(n, func(j int) bool {
				return p[j] > currentArrows
			})
			fmt.Fprintln(out, n-idx)
		}
	}
}