TIL

오늘 배운 것

  1. B-Tree https://ssocoit.tistory.com/217

  2. 구간합구하기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());
	
	
    }
}



results matching ""

    No results matching ""