콘솔창 & 윈도우창/코딩 테스트

[백준 실버1] 구간 합 구하기 5 11660번

게임 개발 2024. 9. 28. 15:17

#include <string>
#include <vector>
#include <iostream>
#include <map>
#include <algorithm>

using namespace std;



int main(void)
{

    ios::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    int n, m;
    cin >> n >> m;

    vector<vector<int>> a(n + 1, vector<int>(n + 1, 0));
    vector<vector<int>> d(n + 1, vector<int>(n + 1, 0));

    for (int i = 1; i <= n; i++)
    {
        for (int j = 1; j <= n; j++)
        {
            cin >> a[i][j];
            d[i][j] = d[i][j - 1] + d[i - 1][j] - d[i - 1][j - 1] + a[i][j];
        }
    }
    for (int i = 0; i < m; i++)
    {
        int x1, y1, x2, y2;
        cin >> x1 >> y1 >> x2 >> y2;
        int result = d[x2][y2] - d[x1 - 1][y2] - d[x2][y1 - 1] + d[x1 - 1][y1 - 1];
        cout << result << "\n";
    }


    return 0;
}

https://www.acmicpc.net/problem/11660