#include<bits/stdc++.h>
using namespace std;
struct tree{
int l,r,sum=0;
}t[10000001];
int n,m;
void pushup(int u)
{
int tmp=t[u<<1].sum+t[u<<1|1].sum;
t[u].sum=tmp;
}
void build(int u,int l,int r)
{
t[u].l=l;t[u].r=r;
if(l==r) return;
int mid=(l+r)>>1;
build(u<<1,l,mid);
build(u<<1|1,mid+1,r);
}
void modify(int u,int pos,int x)
{
if(t[u].l==pos&&t[u].r==pos)
t[u].sum+=x;
else
{
int mid=(t[u].l+t[u].r)>>1;
if(pos<=mid) modify(u<<1,pos,x);
else modify(u<<1|1,pos,x);
pushup(u);
}
}
int query(int u,int l,int r)
{
if(t[u].l>=l&&t[u].r<=r)
return t[u].sum;
int mid=(t[u].l+t[u].r)>>1,res=0;
if(mid>=l) res+=query(u<<1,l,r);
if(mid<r) res+=query(u<<1|1,l,r);
return res;
}
signed main()
{
cin>>n>>m;
build(1,1,n);
while(m--)
{
char op;
cin>>op;
if(op=='x')
{
int x,y;
cin>>x>>y;
modify(1,x,y);
}
else
{
int x,y;
cin>>x>>y;
cout<<query(1,x,y)<<endl;
}
}
}
样例过了,但是测的时候爆零了。求助dalao帮我这个小蒟蒻看看