← Home
For problem statement at 0-999/800-899/830-839/835/problemC.txt this is a correct solution, but verifier at 0-999/800-899/830-839/835/verifierC.go ends with All tests passed can you fix the verifier? package main

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

type FastScanner struct {
	r *bufio.Reader
}

func NewFastScanner() *FastScanner {
	return &FastScanner{r: bufio.NewReaderSize(os.Stdin, 1<<20)}
}

func (fs *FastScanner) NextInt() int {
	sign, val := 1, 0
	c, err := fs.r.ReadByte()
	for (c < '0' || c > '9') && c != '-' {
		c, err = fs.r.ReadByte()
		if err != nil {
			return 0
		}
	}
	if c == '-' {
		sign = -1
		c, _ = fs.r.ReadByte()
	}
	for c >= '0' && c <= '9' {
		val = val*10 + int(c-'0')
		c, err = fs.r.ReadByte()
		if err != nil {
			break
		}
	}
	if err == nil {
		fs.r.UnreadByte()
	}
	return sign * val
}

func rectSum(pref *[101][101]int, x1, y1, x2, y2 int) int {
	return pref[x2][y2] - pref[x1-1][y2] - pref[x2][y1-1] + pref[x1-1][y1-1]
}

func main() {
	in := NewFastScanner()
	out := bufio.NewWriterSize(os.Stdout, 1<<20)
	defer out.Flush()

	n := in.NextInt()
	q := in.NextInt()
	c := in.NextInt()

	var pref [11][101][101]int

	for i := 0; i < n; i++ {
		x := in.NextInt()
		y := in.NextInt()
		s := in.NextInt()
		pref[s][x][y]++
	}

	for s := 0; s <= c; s++ {
		for x := 1; x <= 100; x++ {
			for y := 1; y <= 100; y++ {
				pref[s][x][y] += pref[s][x-1][y] + pref[s][x][y-1] - pref[s][x-1][y-1]
			}
		}
	}

	for i := 0; i < q; i++ {
		t := in.NextInt()
		x1 := in.NextInt()
		y1 := in.NextInt()
		x2 := in.NextInt()
		y2 := in.NextInt()

		tt := t % (c + 1)
		ans := 0
		for s := 0; s <= c; s++ {
			cnt := rectSum(&pref[s], x1, y1, x2, y2)
			ans += ((s + tt) % (c + 1)) * cnt
		}
		fmt.Fprintln(out, ans)
	}
}