RT,什么都输不进去
#include<bits/stdc++.h>
using namespace std;
const int N=2050;
struct szszm{
int c[N][N];
}c,cp,cq,cpq;
int n,m;
char t;
int lowbit(int x){
return x&(-x);
}
void modify(szszm p,int x,int y,int u){
for(int i=x;i<=n;i+=lowbit(i)){
for(int j=y;j<=m;j+=lowbit(j)){
p.c[i][j]+=u;
}
}
return ;
}
int sum(szszm p,int x,int y){
int ans=0;
for(int i=x;i>0;i-=lowbit(i)){
for(int j=y;j>0;j-=lowbit(j)){
ans+=p.c[i][j];
}
}
return ans;
}
int query(int a,int b){
return sum(cpq,a,b)-sum(cp,a,b)*(b+1)-sum(cq,a,b)*(a+1)+sum(c,a,b)*(a+b+a*b+1);
}
int main(){
scanf("X%d%d",&n,&m);
while(cin>>t){
int a1,a2,b1,b2,e;
//cin>>a1>>b1>>a2>>b2;
if(t=='L'){
cin>>e;
modify(c,a1,b1,e);
modify(c,a1,b2+1,-e);
modify(c,a2+1,b1,-e);
modify(c,a2+1,b2+1,e);
modify(cp,a1,b1,e*a1);
modify(cp,a1,b2+1,-e*a1);
modify(cp,a2+1,b1,-e*(a2+1));
modify(cp,a2+1,b2+1,e*(a2+1));
modify(cq,a1,b1,e*b1);
modify(cq,a1,b2+1,-e*(b2+1));
modify(cq,a2+1,b1,-e*b1);
modify(cq,a2+1,b2+1,e*(b2+1));
modify(cpq,a1,b1,e*a1*b1);
modify(cpq,a1,b2+1,-e*a1*(b2+1));
modify(cpq,a2+1,b1,-e*(a2+1)*b1);
modify(cpq,a2+1,b2+1,e*(a2+1)*(b2+1));
}else{
cout<<query(a2,b2)-query(a2,b1-1)-query(a1-1,b2)+query(a1-1,b2-1)<<endl;
}
}
return 0;
}