HDU 1166

来源:互联网 发布:数据分析可以考的证书 编辑:程序博客网 时间:2024/05/17 07:53
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>using namespace std;const int maxn = 50005;int c[maxn];int n;int lowbit(int t){    return t&(-t);}void add(int i,int t){    while(i<=n)    {        c[i]+=t;        i=i+lowbit(i);    }}int sum(int i){    int total=0;    while(i>0)    {        total+=c[i];        i=i-lowbit(i);    }    return total;}int main(){    int T;    scanf("%d",&T);    int case1=1;    while(T--)    {        memset(c,0,sizeof(c));        scanf("%d",&n);        for(int i=1;i<=n;i++){            int x;            scanf("%d",&x);            add(i,x);        }        char s[10];        printf("Case %d:\n",case1++);        while(scanf("%s",s)!=EOF)        {            int x,y;            if(s[0]=='E') break;            scanf("%d %d",&x,&y);            if(s[0]=='A') add(x,y);            else if(s[0]=='S') add(x,-y);            else printf("%d\n",sum(y)-sum(x-1));        }    }    return 0;}
原创粉丝点击