求各路神仙帮助
#include<bits/stdc++.h>
#define int long long int
using namespace std;
int lowbit(int x){return x&-x;}
int t1[2050][2050],t2[2050][2050],t3[2050][2050],t4[2050][2050];
int n,m;
void Add(int x,int y,int k){
for(int i=x;i<=n;i+=lowbit(i)){
for(int j=y;j<=m;j+=lowbit(j)){
t1[i][j]+=k;
t2[i][j]+=k*x;
t3[i][j]+=k*y;
t4[i][j]+=k*x*y;
}
}
}
int Getsum(int x,int y){
int ans=0;
for(int i=x;i;i-=lowbit(i)){
for(int j=y;j;j-=lowbit(j)){
ans+=t1[i][j]*(x+1)*(y+1)+t4[i][j]-t2[i][j]*(y+1)-t3[i][j]*(x+1);
}
}
return ans;
}
signed main()
{
scanf("X %lld%lld",&n,&m);
char op;
int a,b,c,d,x;
while(cin>>op){
if(op=='L'){
scanf("%lld%lld%lld%lld%lld",&a,&b,&c,&d,&x);
Add(a,b,x);
Add(a,d+1,-x);
Add(c+1,b,-x);
Add(c+1,d+1,x);
}
else{
scanf("%lld%lld%lld%lld",&a,&b,&c,&d);
printf("%lld\n",Getsum(c,d)-Getsum(c,b-1)-Getsum(a-1,d)+Getsum(a-1,b-1));
}
}
return 0;
}