样例输入
4 4 2
3 2 9 10
7 2 1 7
10 4 8 4
1 1 2 1
4 1 4 3 1
3 3 4 4 3
样例输出
3 2 9 10
7 2 1 7
10 4 11 7
2 2 6 4
#include<bits/stdc++.h>
using namespace std;
const int N = 1e3+10;
int a[N][N],diff[N][N];
int main(){
int n,m,q;cin>>n>>m>>q;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++)cin>>a[i][j];
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
diff[i][j]=a[i][j]-a[i][j-1];
}
}
while(q--){
int x1,y1,x2,y2,c;
cin>>x1>>y1>>x2>>y2>>c;
for(int i=x1;i<=x2;i++){
diff[i][y1]+=c;
diff[i][y2+1]-=c;
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
a[i][j]=a[i][j-1]+diff[i][j];
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cout<<a[i][j]<<' ';
}
cout<<'\n';
}
return 0;
}
#include<bits/stdc++.h>
using namespace std;
const int N = 1e3+10;
int a[N][N],diff[N][N];
int main(){
int n,m,q;cin>>n>>m>>q;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++)cin>>a[i][j];
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
diff[i][j]=a[i][j]-a[i][j-1];
}
}
while(q--){
int x1,y1,x2,y2,c;
cin>>x1>>y1>>x2>>y2>>c;
for(int i=x1;i<=x2;i++){
diff[i][y1]+=c;
diff[i][y2+1]-=c;
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
a[i][j]=a[i][j-1]+diff[i][j];
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cout<<a[i][j]<<' ';
}
cout<<'\n';
}
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int m, n;
int a[1005][1005], b[1005][1005], g[1005][1005];
void insert(int x1, int y1, int x2, int y2, int c)
{
b[x1][y1] += c;
b[x1][y2 + 1] -= c;
b[x2+1][y1] -= c;
b[x2 + 1][y2 + 1] += c;
}
int main()
{
int m, n, i, j,q;//m,n为行数和列数,q为操作次数
scanf("%d%d%d", &m, &n,&q);
for (int i = 1; i <= m; i++)
{
for (int j = 1; j <= n; j++)
{
scanf("%d", &g[i][j]);
insert(i, j, i, j, g[i][j]);
}
}
while (q--)
{
int x1, y1, x2, y2, c;
scanf("%d%d%d%d%d", &x1, &y1, &x2, &y2, &c);
insert(x1, y1, x2, y2, c);
//printf("%d ", q);
}
for (int i = 1; i <= m; i++)
{
for (int j = 1; j <= n; j++)
{
a[i][j] = a[i - 1][j] + a[i][j - 1] + b[i][j] - a[i - 1][j - 1];
printf("%d ", a[i][j]);
}
printf("\n");
}
}