求和的时候注意容斥原理ans = sum(x2,y2)-sum(x1-1,y2)-sum(x2,y1-1)+sum(x1-1,y1-1);
#define N 1100
int c[N][N];
int lowbit(int x){
return x&(-x);
}
void add(int i,int j,int x){
int tmp;
while(i<N){
tmp = j;
while(tmp<N){
c[i][tmp]+=x;
tmp+=lowbit(tmp);
}
i+=lowbit(i);
}
}
int sum(int i,int j){
int ans=0;
int tmp;
while(i>0){
tmp = j;
while(tmp>0){
ans+=c[i][tmp];
tmp-=lowbit(tmp);
}
i-=lowbit(i);
}
return ans;
}
int main(){FRE;
int op,n;
scanf("%d%d",&op,&n);
int i,j;
memset(c,0,sizeof(c));
while(scanf("%d",&op) && op!=3){
if(op == 1){
int x,y,a;
scanf("%d%d%d",&x,&y,&a);
x++,y++;
add(x,y,a);
} else {
int x1,y1,x2,y2;
scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
x1++,x2++;
y1++,y2++;
int ans = sum(x2,y2)-sum(x1-1,y2)-sum(x2,y1-1)+sum(x1-1,y1-1);
printf("%d\n",ans);
}
}
return 0;
}