| 记录编号 |
228488 |
评测结果 |
AAAAAAAAA |
| 题目名称 |
1316.数列操作B |
最终得分 |
100 |
| 用户昵称 |
安呐一条小咸鱼。 |
是否通过 |
通过 |
| 代码语言 |
C++ |
运行时间 |
0.063 s |
| 提交时间 |
2016-02-19 11:36:23 |
内存使用 |
1.05 MiB |
显示代码纯文本
#include<cstdio>
int c[100050];
int shu[100050];int n;
inline int QuickRead() {
int zf = 1, ret = 0;
char ch = getchar();
while ((ch < '0' || ch > '9') && ch != '-') ch = getchar();
if (ch == '-') zf = -1;
else ret = ch - '0';
ch = getchar();
while (ch >= '0' && ch <= '9') {
ret = ret * 10 + ch - '0';
ch = getchar();
}
return ret*zf;
}
int Lowbit(int x)
{
return x&(-x);
}
void Update(int r,int w)
{
for(int i=r;i<=n;i+=Lowbit(i))c[i]+=w;
}
int Get_sum(int x)
{
//if(x==0)return 0;
int ans=0;
for(int i=x;i>0;i-=Lowbit(i))ans+=c[i];
return ans;
}
int main()
{
freopen("shulieb.in","r",stdin);
freopen("shulieb.out","w",stdout);
n=QuickRead();
for(int i=1;i<=n;++i)
{
shu[i]=QuickRead();
}
int a,b,c,m;
char ch[10];
m=QuickRead();
while(m--)
{
scanf("%s%d",ch,&a);
if(ch[0]=='Q')
{
printf("%d\n",Get_sum(a)+shu[a]);
}
else
{
b=QuickRead();
c=QuickRead();
Update(a,c);
Update(b+1,(-c));
}
}
return 0;
}