输入样例: 10 5 1 2 3 4 5 6 7 8 9 10 Q 4 Q 1 Q 2 C 1 6 3 Q 2 输出样例: 4 1 2 5 #include<bits/stdc++.h> using namespace std; const int N=1e5+5; int n,m,a[N],c[N],x,y,d; char ch; int lowbit(int x){ return x&-x; } void add(int x,int k){ for(int i=x;i<=n;i+=lowbit(i)) c[i]+=k; } int sum(int x){ int ans=0; for(int i=x;i;i-=lowbit(i)) ans+=c[i]; return ans; } int main(){ scanf("%d%d",&n,&m); for(int i=1;i<=n;i++){ scanf("%d",&a[i]); add(i,a[i]-a[i-1]); } while(m--){ cin>>ch; if(ch=='Q'){ scanf("%d",&x); cout<<sum(x)<<endl; } else{ scanf("%d%d%d",&x,&y,&d); add(x,d); add(y+1,-d); } } return 0; }