티스토리 뷰

백준

백준 소스코드 [C++] 11660 구간 합 구하기 5

Hani_Levenshtein 2020. 12. 20. 09:28

www.acmicpc.net/problem/11660

 

11660번: 구간 합 구하기 5

첫째 줄에 표의 크기 N과 합을 구해야 하는 횟수 M이 주어진다. (1 ≤ N ≤ 1024, 1 ≤ M ≤ 100,000) 둘째 줄부터 N개의 줄에는 표에 채워져 있는 수가 1행부터 차례대로 주어진다. 다음 M개의 줄에는 네

www.acmicpc.net

백준 소스코드 [C++] 11660 구간 합 구하기 5

#include <iostream>
#include <algorithm>
#include <queue>
#include <string.h>
#include <limits.h>
#include <vector>
#include <math.h>
#include <stack>
#include <bitset>
#include <string>
typedef long long ll;
using namespace std;
#define all(v) v.begin(),v.end()
int arr[1026][1026], brr[1026][1026];
int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	int n, m;
	cin >> n >> m;
	
	for (int i = 1;i <= n;i++)for (int j = 1;j <= n;j++)cin >> arr[i][j];
	for (int i = 1;i <= n;i++)for (int j = 1;j <= n;j++) brr[i][j] = brr[i-1][j] + brr[i][j-1] - brr[i-1][j-1]+arr[i][j];
	int x1, x2, y1, y2;
	for (int i = 0;i < m;i++) {
		cin >> y1 >> x1 >> y2 >> x2;
		cout << brr[y2][x2] - brr[y2][x1-1] - brr[y1-1][x2] + brr[y1-1][x1-1] << '\n';
	}
	return 0;
}
댓글