File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree 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+
8+ BufferedReader br = new BufferedReader (new InputStreamReader (System .in ));
9+ BufferedWriter bw = new BufferedWriter (new OutputStreamWriter (System .out ));
10+
11+ StringTokenizer st = new StringTokenizer (br .readLine ());
12+
13+ int N = Integer .parseInt (st .nextToken ());
14+ int M = Integer .parseInt (st .nextToken ());
15+
16+ int [][] oldarr = new int [N +1 ][M +1 ];
17+ int [][] newarr = new int [N +1 ][M +1 ];
18+
19+ for (int i = 1 ; i <N +1 ; i ++){
20+ st = new StringTokenizer (br .readLine ());
21+ for (int p = 1 ; p <M +1 ; p ++) {
22+ oldarr [i ][p ] = Integer .parseInt (st .nextToken ());
23+ }
24+ }
25+
26+ for (int m = 1 ; m <N +1 ; m ++){
27+ for (int l = 1 ; l <M +1 ; l ++){
28+ newarr [m ][l ] = newarr [m -1 ][l ] + newarr [m ][l -1 ] - newarr [m -1 ][l -1 ] + oldarr [m ][l ];
29+ }
30+ }
31+
32+ int K = Integer .parseInt (br .readLine ());
33+
34+ for (int u = 0 ; u <K ; u ++){
35+ st = new StringTokenizer (br .readLine ());
36+
37+ int x1 = Integer .parseInt (st .nextToken ());
38+ int y1 = Integer .parseInt (st .nextToken ());
39+ int x2 = Integer .parseInt (st .nextToken ());
40+ int y2 = Integer .parseInt (st .nextToken ());
41+
42+ int result = newarr [x2 ][y2 ] - newarr [x1 -1 ][y2 ] - newarr [x2 ][y1 -1 ] + newarr [x1 -1 ][y1 -1 ];
43+
44+ bw .write (result +"" );
45+ bw .newLine ();
46+ bw .flush ();
47+ }
48+ }
49+ }
You can’t perform that action at this time.
0 commit comments