1- import java .io .BufferedReader ;
2- import java .io .BufferedWriter ;
3- import java .io .InputStreamReader ;
4- import java .io .OutputStreamWriter ;
5- import java .util .Arrays ;
6- import java .util .StringTokenizer ;
1+ import java .io .*;
2+ import java .util .*;
73
84public class Main {
9-
10- static int n , m ;
11- static int [][] s , info ;
12- static StringTokenizer st ;
13- static StringBuilder sb = new StringBuilder ();
14- static BufferedReader br = new BufferedReader (new InputStreamReader (System .in ));
15- static BufferedWriter bw = new BufferedWriter (new OutputStreamWriter (System .out ));
165 public static void main (String [] args ) throws Exception {
17- input ();
18- sum ();
19- bw .append (sb );
20- bw .flush ();
21- bw .close ();
22- }
6+ BufferedReader br = new BufferedReader (new InputStreamReader (System .in ));
7+ BufferedWriter bw = new BufferedWriter (new OutputStreamWriter (System .out ));
8+ StringBuilder sb = new StringBuilder ();
9+ StringTokenizer st = new StringTokenizer (br .readLine ());
2310
24- public static void sum (){
25- int x1 , x2 , y1 , y2 ;
26- for (int i = 0 ; i < m ; i ++) {
27- x1 = info [i ][0 ];
28- y1 = info [i ][1 ];
29- x2 = info [i ][2 ];
30- y2 = info [i ][3 ];
31- sb .append (s [x2 ][y2 ] - s [x2 ][y1 - 1 ] - s [x1 - 1 ][y2 ] + s [x1 - 1 ][y1 - 1 ]).append ("\n " );
32- }
33- }
11+ int n , m ;
12+ int [][] sum ;
3413
35- public static void input () throws Exception {
36- st = new StringTokenizer (br .readLine ());
3714 n = Integer .parseInt (st .nextToken ());
3815 m = Integer .parseInt (st .nextToken ());
39- s = new int [n + 1 ][n + 1 ];
40- info = new int [m ][4 ];
4116
42- for (int i = 1 ; i < n + 1 ; i ++) {
17+ sum = new int [n + 1 ][n + 1 ];
18+ for (int i = 1 ; i < n + 1 ; i ++){
4319 st = new StringTokenizer (br .readLine ());
4420
45- for (int j = 1 ; j < n + 1 ; j ++) s [i ][j ] = s [i - 1 ][j ] + s [i ][j - 1 ] - s [i - 1 ][j - 1 ] + Integer .parseInt (st .nextToken ());
21+ for (int j = 1 ; j < n + 1 ; j ++){
22+ sum [i ][j ] = Integer .parseInt (st .nextToken ());
23+ sum [i ][j ] += sum [i - 1 ][j ] + sum [i ][j - 1 ] - sum [i - 1 ][j - 1 ];
24+ }
4625 }
4726
48- for (int i = 0 ; i < m ; i ++) {
27+ int sx , sy , ex , ey ;
28+ for (int i = 0 ; i < m ; i ++){
4929 st = new StringTokenizer (br .readLine ());
30+ sx = Integer .parseInt (st .nextToken ());
31+ sy = Integer .parseInt (st .nextToken ());
32+ ex = Integer .parseInt (st .nextToken ());
33+ ey = Integer .parseInt (st .nextToken ());
5034
51- for (int j = 0 ; j < 4 ; j ++) info [i ][j ] = Integer .parseInt (st .nextToken ());
35+ sb .append (sum [ex ][ey ] - (sum [sx - 1 ][ey ] + sum [ex ][sy - 1 ]) + sum [sx - 1 ][sy - 1 ]);
36+ if (i != m - 1 ) sb .append ("\n " );
5237 }
38+ bw .append (sb );
39+ bw .close ();
5340 }
54-
55- }
41+ }
0 commit comments