文件详细信息
本文件的大小为 891 字节。
#include<cstdio>
#define lowbit(x) (x&-x)
inline int read(){
bool flag=true;
int ch=getchar(),num=0;
while(ch<48||ch>57){
if(ch=='-')flag=false;
else if(ch==-1)return -1;
ch=getchar();
}
while(ch>=48&&ch<=57)num=(num<<3)+(num<<1)+(ch^48),ch=getchar();
return flag?num:-num;
}
const int maxn=4100;
int n,m,op,a,b,c,d,k,x,y;
long long tree[maxn][maxn];
void add(int x,int y,int v){
while(x<=n){
for(int i=y;i<=m;i+=lowbit(i))tree[x][i]+=v;
x+=lowbit(x);
}
}
long long sum(int x,int y){
long long ans=0;
while(x){
for(int i=y;i;i-=lowbit(i))ans+=tree[x][i];
x-=lowbit(x);
}
return ans;
}
int main(){
n=read(),m=read();
while(true){
op=read();
if(op==1){
a=read(),b=read(),c=read(),d=read(),k=read();
add(a,b,k),add(a,d+1,-k),add(c+1,b,-k),add(c+1,d+1,k);
}else if(op==2){
x=read(),y=read();
printf("%lld\n",sum(x,y));
}else break;
}
return 0;
}