记录编号 312659 评测结果 WWWWWWWWW
题目名称 数列操作B 最终得分 0
用户昵称 GravatarMagic_Sheep 是否通过 未通过
代码语言 C++ 运行时间 0.020 s
提交时间 2016-09-27 10:07:25 内存使用 0.41 MiB
显示代码纯文本
#include<cstdio>
#include<iostream>
using namespace std;
const int maxn=120050;
int n,a[maxn],d[maxn];
int pos,x,y,m;
inline void get1(int &x)
{
	char ch;
	while(ch=getchar(),ch<48||ch>57);
	x=ch-48;
	while(ch=getchar(),ch>47&&ch<58)x=x*10+ch-48;
}
inline int low(int x)
{
    return x&(-x);
}
inline void add(int x,int val)
{
    for(int i=x;i<=n;i+=low(i))
    {
        d[i]+=val;
    }
}
inline int sum(int x)
{
    int ans=0;
    for(int i=x;i;i-=low(i))
    {
        ans+=d[i];
    }
    return ans;
}
char c[10];
int MAIN()
{
    freopen("shulieb.in","r",stdin);
	freopen("shulieb.out","w",stdout);
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
        get1(a[i]);
    }
    scanf("%d",&m);
    for(int i=1;i<=m;i++)
    {
        scanf("%s",c);
        if(c[0]=='Q')
        {
            get1(pos);
            printf("%d\n",a[pos]+sum(pos));
        }
        else
        {
            get1(x);get1(y);get1(pos);
            add(x,pos),add(y+1,-pos);
        }
    }
    return 0;
}
int EZOI=MAIN();
int main(){;}