子矩阵求和
题目描述:
读入一个n*m的矩阵,q次询问,每次询问一个子矩阵内数字权值和。
输入格式:
第一行三个整数n,m,q
之后n行每行m个0到100的整数
之后q行,每行四个整数x1,y1,x2,y2,表示要询问的子矩阵。
输出格式:
q行表示答案。
约定:
1<=n,m<=500, q<=1000000
子矩阵求和
题目描述:
读入一个n*m的矩阵,q次询问,每次询问一个子矩阵内数字权值和。
输入格式:
第一行三个整数n,m,q
之后n行每行m个0到100的整数
之后q行,每行四个整数x1,y1,x2,y2,表示要询问的子矩阵。
输出格式:
q行表示答案。
约定:
1<=n,m<=500, q<=1000000
#include <iostream>
using namespace std;
int main()
{
int n, m, q;
cin >> n >> m >> q;
int a[n][m];
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
cin >> a[i][j];
for (int i = 0; i < q; i++)
{
int x1,y1,x2,y2;
cin >> x1 >> y1 >> x2 >> y2;
int sum = 0;
for (int j = x1; j <= x2; j++)
for (int k = y1; k <= y2; k++)
sum += a[j][k];
cout << sum << endl;
}
return 0;
}