记录编号 131756 评测结果 AAAAAAAAAAAAAAAA
题目名称 数列操作A 最终得分 100
用户昵称 Gravatardevil 是否通过 通过
代码语言 C++ 运行时间 0.239 s
提交时间 2014-10-24 20:52:10 内存使用 1.08 MiB
显示代码纯文本
#include <cstdlib>
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;

int n;
int dat[200010];

int lowbit(int x) {return x&-x;}

void add(int x,int v)
{
    while(x<=n)
    {
        dat[x]+=v;
        x+=lowbit(x);
    }
}

int sum(int x)
{
    int res=0;
    while(x>0)
    {
        res+=dat[x];
        x-=lowbit(x);
    }
    return res;
}

int main()
{
    freopen("shulie.in","r",stdin);
    freopen("shulie.out","w",stdout);
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
        int t;scanf("%d",&t);
        add(i,t);
    }
    int m;
    scanf("%d\n",&m);
    while(m--)
    {
        char ope[10];
        scanf("%s",ope);
        if(ope[0]=='S')
        {
            int t1,t2;
            scanf("%d%d\n",&t1,&t2);
            int a=sum(t1-1);
            int b=sum(t2);
            printf("%d\n",b-a);
        }
        else
        {
            int t1,t2;
            scanf("%d%d\n",&t1,&t2);
            add(t1,t2);
        }
    }
    //system("PAUSE");
    return 0;
}