File tree 1 file changed +36
-0
lines changed
1 file changed +36
-0
lines changed Original file line number Diff line number Diff line change
1
+ import java .io .*;
2
+ import java .util .*;
3
+
4
+ public class Main {
5
+
6
+ public static void main (String [] args ) throws IOException {
7
+ BufferedReader br = new BufferedReader (new InputStreamReader (System .in ));
8
+ StringTokenizer st = new StringTokenizer (br .readLine ());
9
+ int N = Integer .parseInt (st .nextToken ());
10
+ int M = Integer .parseInt (st .nextToken ());
11
+ int [][] arr = new int [N + 1 ][N + 1 ];
12
+ for (int i = 1 ; i <= N ; i ++) {
13
+ st = new StringTokenizer (br .readLine ());
14
+ for (int j = 1 ; j <= N ; j ++) {
15
+ arr [i ][j ] = Integer .parseInt (st .nextToken ());
16
+ }
17
+ }
18
+ int [][] d = new int [N + 1 ][N + 1 ];
19
+ for (int i = 1 ; i <= N ; i ++) {
20
+ for (int j = 1 ; j <= N ; j ++) {
21
+ d [i ][j ] = d [i - 1 ][j ] + d [i ][j - 1 ] - d [i - 1 ][j - 1 ] + arr [i ][j ];
22
+ }
23
+ }
24
+ int x1 , y1 , x2 , y2 ;
25
+ StringBuilder sb = new StringBuilder ();
26
+ for (int i = 0 ; i < M ; i ++) {
27
+ st = new StringTokenizer (br .readLine ());
28
+ x1 = Integer .parseInt (st .nextToken ());
29
+ y1 = Integer .parseInt (st .nextToken ());
30
+ x2 = Integer .parseInt (st .nextToken ());
31
+ y2 = Integer .parseInt (st .nextToken ());
32
+ sb .append (d [x2 ][y2 ] - d [x2 ][y1 - 1 ] - d [x1 - 1 ][y2 ] + d [x1 - 1 ][y1 - 1 ]).append ('\n' );
33
+ }
34
+ System .out .print (sb );
35
+ }
36
+ }
You can’t perform that action at this time.
0 commit comments