1 #include<stdio.h> 2 #include<string.h> 3 #include<algorithm> 4 #include<math.h> 5 using namespace std; 6 int tree[1000010],t,m,i; 7 int main() 8 { 9 void add(int left,int num); 10 int getsum(int end); 11 while(scanf("%d%d",&t,&m)!=EOF) 12 { 13 int a,b1,b2,b3; 14 char ch[10]; 15 memset(tree,0,sizeof(tree)); 16 for(i=0;i<t;i++) 17 { 18 scanf("%s",ch); 19 if(ch[0]=='A') 20 { 21 scanf("%d%d%d",&b1,&b2,&b3); 22 add(b1,b3); 23 add(b2+1,-b3); 24 } 25 else 26 { 27 scanf("%d",&b1); 28 printf("%d ",getsum(b1)); 29 } 30 } 31 } 32 return 0; 33 } 34 int lowbit(int n) 35 { 36 return n&(-n); 37 } 38 void add(int left,int num) 39 { 40 while(left<=m) 41 { 42 tree[left]+=num; 43 left+=lowbit(left); 44 } 45 } 46 int getsum(int end) 47 { 48 int sum=0; 49 while(end>0) 50 { 51 sum+=tree[end]; 52 end-=lowbit(end); 53 } 54 return sum; 55 }