728x90
반응형
16507번: 어두운 건 무서워
문제
https://www.acmicpc.net/problem/16507
16507번: 어두운 건 무서워
첫 번째 줄에는 사진의 크기를 의미하는 정수 R, C (1 ≤ R, C ≤ 1,000)와 사진 일부분의 밝기 평균을 알아볼 개수를 의미하는 정수 Q (1 ≤ Q ≤ 10,000)가 주어진다. 다음 R개의 줄에 걸쳐 R×C 크기의 사
www.acmicpc.net
풀이
[백준 / BOJ] C++ 11660 구간 합 구하기 5와 같은 문제다.
[백준 / BOJ] C++ 11660 구간 합 구하기 5
11660번: 구간 합 구하기 5 문제 https://www.acmicpc.net/problem/11660 11660번: 구간 합 구하기 5 첫째 줄에 표의 크기 N과 합을 구해야 하는 횟수 M이 주어진다. (1 ≤ N ≤ 1024, 1 ≤ M ≤ 100,000) 둘째 줄부터 N개
khyunx.tistory.com
각 행별로 누적 합(prefix sum)을 만든 다음, 원하는 구간의 행별 구간 합을 모두 더하면 된다. q번 구간 합을 구하기 때문에 sum 변수 초기화에 신경 써줘야 하고, 공간의 개수는 (r2 - r1 + 1) * (c2 - c1 + 1) 임에 유의하자.
코드
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int r, c, q, r1, c1, r2, c2;
cin >> r >> c >> q;
int arr[1001][1001] = {0};
for (int i = 1; i <= r; i++)
for (int j = 1; j <= c; j++) {
cin >> arr[i][j];
arr[i][j] += arr[i][j - 1];
}
while (q--) {
int sum = 0;
cin >> r1 >> c1 >> r2 >> c2;
for (int i = r1; i <= r2; i++)
sum += arr[i][c2] - arr[i][c1 - 1];
cout << sum / ((r2 - r1 + 1) * (c2 - c1 + 1)) << '\n';
}
return 0;
}
728x90
반응형
'Problem Solving > BOJ' 카테고리의 다른 글
[백준 / BOJ] C++ 15786 Send me the money (2) | 2023.05.15 |
---|---|
[백준 / BOJ] C++ 11966 2의 제곱인가? (2) | 2023.05.09 |
[백준 / BOJ] C++ 28014 첨탑 밀어서 부수기 (0) | 2023.05.08 |
[백준 / BOJ] C++ 2583 영역 구하기 (8) | 2023.05.06 |
[백준 / BOJ] C++ 19568 직사각형 (6) | 2023.04.23 |