λ°±μ€ 11660λ² - κ΅¬κ° ν© κ΅¬νκΈ° 5
https://www.acmicpc.net/problem/11660
11660λ²: κ΅¬κ° ν© κ΅¬νκΈ° 5
첫째 μ€μ νμ ν¬κΈ° Nκ³Ό ν©μ ꡬν΄μΌ νλ νμ Mμ΄ μ£Όμ΄μ§λ€. (1 ≤ N ≤ 1024, 1 ≤ M ≤ 100,000) λμ§Έ μ€λΆν° Nκ°μ μ€μλ νμ μ±μμ Έ μλ μκ° 1νλΆν° μ°¨λ‘λλ‘ μ£Όμ΄μ§λ€. λ€μ Mκ°μ μ€μλ λ€
www.acmicpc.net
μ΄μ¬ν μ’ μ΄μ κ·Έλ €κ°λ©΄μ ꡬνλ €κ³ νλλ° λ무 볡μ‘νκ² μκ°ν νμΈμ§ λͺ»νμλ€. κ²°κ΅ ν΄μ€μ λ£κ³ μκ²λμλλ°, λ΄κ° μ²μμ μ κΉ μκ°ν 'νλ³λ‘ λμ ν© κ΅¬ν΄μ λνκΈ°'κ° λ§μλ€. μκ°μ΄κ³Όλ κ² κ°μμ μν΄λ΄€λλ°..
μκ°μ΄κ³Ό κ°μ€νκ³ μλν΄λ³΄λ κ²λ μ’μ κ² κ°λ€λΌλ μκ°μ΄ λ€μλ€. κ΄ν μκ°μ΄κ³Ό λ κ² κ°λ€κ³ λ€λ₯Έ λ°©λ² μκ°νλ€κ° λ 볡μ‘νκ² μκ°νκ³ μκ°λ§ λ κΉλ¨Ήμλ€.
μ½λ
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
int[][] dp = new int[N + 1][N + 1];
for(int i = 1; i < N + 1; i++) { //νλ³ λμ ν© μ μ₯
st = new StringTokenizer(br.readLine());
dp[i][1] = Integer.parseInt(st.nextToken());
for(int j = 2; j < N + 1; j++) {
dp[i][j] = dp[i][j - 1] + Integer.parseInt(st.nextToken());
}
}
StringBuilder sb = new StringBuilder();
for(int i = 0; i < M; i++) {
st = new StringTokenizer(br.readLine());
int x1 = Integer.parseInt(st.nextToken());
int y1 = Integer.parseInt(st.nextToken());
int x2 = Integer.parseInt(st.nextToken());
int y2 = Integer.parseInt(st.nextToken());
int sum = 0;
for(int j = x1; j <= x2; j++) {
sum += dp[j][y2] - dp[j][y1 - 1];
}
sb.append(sum + "\n");
}
System.out.println(sb);
}
}
κ²°κ³Ό
