TIL
오늘 배운 것
-
B-Tree https://ssocoit.tistory.com/217
-
구간합구하기5
https://www.acmicpc.net/problem/11660
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
//System.setIn(new FileInputStream("input3.txt"));
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st=new StringTokenizer(br.readLine()," ");
StringBuilder sb=new StringBuilder();
int N=Integer.parseInt(st.nextToken());
int M=Integer.parseInt(st.nextToken());
int[][] cumArr=new int[N][N];
for(int r=0;r<N;r++) {
st=new StringTokenizer(br.readLine()," ");
for(int c=0;c<N;c++) {
cumArr[r][c]=Integer.parseInt(st.nextToken());
if(r>=1) cumArr[r][c]+=cumArr[r-1][c];
if(c>=1) cumArr[r][c]+=cumArr[r][c-1];
if(r>=1 && c>=1) cumArr[r][c]-=cumArr[r-1][c-1];
}
}
for(int i=0;i<M;i++) {
st=new StringTokenizer(br.readLine()," ");
int x1=Integer.parseInt(st.nextToken())-1;
int y1=Integer.parseInt(st.nextToken())-1;
int x2=Integer.parseInt(st.nextToken())-1;
int y2=Integer.parseInt(st.nextToken())-1;
int returnNum=cumArr[x2][y2];
if(x1>=1) returnNum-=cumArr[x1-1][y2];
if(y1>=1) returnNum-=cumArr[x2][y1-1];
if(x1>=1 && y1>=1) returnNum+=cumArr[x1-1][y1-1];
sb.append(returnNum).append("\n");
}
System.out.print(sb.toString());
}
}