1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
package main
import (
"bufio"
"fmt"
"os"
)
const N = 1010
func main() {
defer ot.Flush()
var n, m, q int
fmt.Fscan(in, &n, &m, &q)
a := make([][N]int, N)
for i := 1; i <= n; i++ {
for j := 1; j <= m; j++ {
fmt.Fscan(in, &a[i][j])
a[i][j] += a[i-1][j] + a[i][j-1] - a[i-1][j-1]
}
}
var x1, y1, x2, y2 int
for ; q != 0; q-- {
fmt.Fscan(in, &x1, &y1, &x2, &y2)
res := a[x2][y2] - a[x1-1][y2] - a[x2][y1-1] + a[x1-1][y1-1]
fmt.Fprintln(ot, res)
}
}
const BUFSIZE = int(1e6)
var (
ot = bufio.NewWriterSize(os.Stdout, BUFSIZE)
in = bufio.NewReader(os.Stdin)
)
|