hdu 적군 포진 라인 트 리 기초

/*      ...   not only success     ,   .

            .     ,        .       .*/

#include 
#include 
#define maxn 50001
#define lson l,mid,rt<<1//<>1;
    build(lson);
    build(rson);
    pushup(rt);
}
void update(int p,int val,int l,int r,int rt)//p           ,val      ,      .        .
{
    //          ,          
    if(l==r)
    {
        sum[rt]+=val;
        return ;
    }
    int mid=(r+l)>>1;//p=r) return sum[rt];//                    ,    
    int mid=(l+r)>>1;
    int s=0;//          
    if(R>mid) s+=query(L,R,rson);//               ,                ,     .
    if(L<=mid) s+=query(L,R,lson);//   if      else.     if        .
    return s;
}
int main()
{
    int t,cases=1,a,b;
    scanf("%d",&t);
    while(t--)
    {
        printf("Case %d:
",cases++); scanf("%d",&n); build(1,n,1); char op[10]; memset(op,0,sizeof(op)); while(scanf("%s",op)==1&&strcmp(op,"End")!=0) { scanf("%d%d",&a,&b); if(op[0]=='A') update(a,b,1,n,1); else if(op[0]=='S') update(a,-b,1,n,1); else printf("%d
",query(a,b,1,n,1)); } } return 0; }

좋은 웹페이지 즐겨찾기