Koala - 12기/코딩테스트 준비 스터디

[백준/C++] 16507번: 어두운건 무서워

Langerak 2023. 9. 30. 21:45

문제

풀이

R*C 크기의 사진에 대한 밝기가 주어지면, 사진의 일부분에 해당하는 밝기 평균을 구하는 문제이다.

2차원 배열의 누적합을 구하고, 사진의 일부분의 가로*세로로 나누어주면 된다.

코드

#include <bits/stdc++.h>
using namespace std;

int R, C, Q;

int picture[1001][1001];

int main() {
	ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);

	cin >> R >> C >> Q;

	for (int i = 1; i <= R; i++) {
		for (int j = 1; j <= C; j++) {
			cin >> picture[i][j];
			picture[i][j] += picture[i - 1][j] + picture[i][j - 1] - picture[i - 1][j - 1];
		}
	}

	int r1, c1, r2, c2;
	for (int i = 0; i < Q; i++) {
		cin >> r1 >> c1 >> r2 >> c2;
		cout << (picture[r2][c2] + picture[r1 - 1][c1 - 1] - picture[r2][c1 - 1] - picture[r1 - 1][c2]) / ((r2 - r1 + 1) * (c2 - c1 + 1)) << endl;
	}

	return 0;
}