poj1195
#include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std;
int len=0;
int sum[1026][1026];
int lowbit(int x){
return x&-x;
}
void add(int x,int y,int z){
for(int i=x;i<=len;i+=lowbit(i))
for(int j=y;j<=len;j+=lowbit(j))
sum[i][j]+=z;
}
int query(int x,int y){
int res=0;
for(int i=x;i>0;i-=lowbit(i))
for(int j=y;j>0;j-=lowbit(j))
res+=sum[i][j];
return res;
}
int main(){
int n;
while(scanf("%d",&n)){
if(n==0){
scanf("%d",&len);
memset(sum,0,sizeof(sum));
}else if(n==1){
int x,y,z;
scanf("%d%d%d",&x,&y,&z);
add(x+1,y+1,z);
}else if(n==2){
int x1,y1,x2,y2;
scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
x1++;y1++;x2++;y2++;
printf("%d\n",query(x2,y2)-query(x2,y1-1)-query(x1-1,y2)+query(x1-1,y1-1));
}else break;
}
}