rt
# include <bits/stdc++.h>
using namespace std;
struct Tree2{
long long tree[4100][4100]={0};
inline int lowbit(int i){
return i&-i;
}
inline void add(long long x,int i,int j,int n,int m){
while(i<=n){
while(j<=m){
tree[i][j]+=x;
j+=lowbit(j);
}
i+=lowbit(i);
}
}
inline int query(int i,int j){
long long sum=0;
while(i>0){
while(j>0){
sum+=tree[i][j];
j-=lowbit(j);
}
i-=lowbit(i);
}
return sum;
}
inline long long query2(int x1,int y1,int x2,int y2){
return query(x2,y2)-query(x1-1,y2)-query(x2,y1-1)+query(x1-1,y1-1);
}
}t1;
int main(){
int n,m;
cin>>n>>m;
int a;
while(cin>>a){
if(a==1){
int x,y,k;
cin>>x>>y>>k;
t1.add(k,x,y,n,m);
}else{
int x1,y1,x2,y2;
cin>>x1>>y1>>x2>>y2;
cout<<t1.query2(x1,y1,x2,y2)<<endl;
}
}
return 0;
}
样例输入:
2 2
1 1 1 3
1 2 2 4
2 1 1 2 2
正确输出:
7
程序输出:
4