← Home
For problem statement at 1000-1999/1700-1799/1770-1779/1775/problemE.txt this is a correct solution, but verifier at 1000-1999/1700-1799/1770-1779/1775/verifierE.go ends with all tests passed can you fix the verifier? package main

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

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

	t := int(readInt(reader))
	for i := 0; i < t; i++ {
		n := int(readInt(reader))
		var pos, neg int64 = 0, 0
		for j := 0; j < n; j++ {
			x := readInt(reader)
			if x > 0 {
				pos += x
				neg -= x
				if neg < 0 {
					neg = 0
				}
			} else if x < 0 {
				x = -x
				neg += x
				pos -= x
				if pos < 0 {
					pos = 0
				}
			}
		}
		fmt.Fprintln(writer, pos+neg)
	}
}

func readInt(reader *bufio.Reader) int64 {
	var res int64 = 0
	var sign int64 = 1
	var b byte
	var err error
	for {
		b, err = reader.ReadByte()
		if err != nil {
			return 0
		}
		if b == '-' || (b >= '0' && b <= '9') {
			break
		}
	}
	if b == '-' {
		sign = -1
		b, err = reader.ReadByte()
		if err != nil {
			return 0
		}
	}
	for b >= '0' && b <= '9' {
		res = res*10 + int64(b-'0')
		b, err = reader.ReadByte()
		if err != nil {
			break
		}
	}
	return res * sign
}