프로그래밍 알고리즘

[정올 3136] const구간의 합 구하기(2D)

꾸준한사람 2023. 1. 10. 03:25
반응형

http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=2418&sca=99&sfl=wr_hit&stx=3136 

 

JUNGOL

 

www.jungol.co.kr

#include <stdio.h>

int N, M;
typedef unsigned long long u64;
u64 arr[1002][1002]; //(0,0) ~ (i,j) 까지의 합

int main(void) {
	scanf("%d", &N);
	u64 tmp;
	for (int i = 1; i <= N; i++) {
		for (int j = 1; j <= N; j++) {
			scanf(" %lld", &tmp);
			arr[i][j] = arr[i][j - 1] + arr[i - 1][j] - arr[i - 1][j - 1] + tmp;
		}
	}
	scanf(" %d", &M);
	int sri, sci, eri, eci;
	for (int i = 0; i < M; i++) {
		scanf(" %d %d %d %d", &sri, &sci, &eri, &eci);
		u64 ans = arr[eri][eci] - arr[sri - 1][eci] - arr[eri][sci - 1] + arr[sri - 1][sci - 1];
		printf("%lld\n", ans);
	}

	return 0;
}
반응형