记录编号 |
397545 |
评测结果 |
AAAAAAATAAAAATA |
题目名称 |
数列操作A |
最终得分 |
86 |
用户昵称 |
Letter zZZz |
是否通过 |
未通过 |
代码语言 |
C++ |
运行时间 |
6.963 s |
提交时间 |
2017-04-20 18:05:31 |
内存使用 |
3.91 MiB |
显示代码纯文本
#include <fstream>
using namespace std;
ifstream fi("shulie.in");
ofstream fo("shulie.out");
int n,A[100001]={0},tree[1000000]={0},k,d,s,t,m;
string move;
int lowbit(int a)
{
return a&-a;
}
void add(int a,int b)
{
while(a<=n)
{
tree[a]+=b;
a+=lowbit(a);
}
}
int sum(int a)
{
int b=0;
while (a>0)
{
b+=tree[a];
a-=lowbit(a);
}
return b;
}
int main()
{
fi>>n;
for (int i=1;i<=n;i++)
{
fi>>A[i];
add(i,A[i]);
}
fi>>m;
for (int i=0;i<m;i++)
{
fi>>move;
if(move=="SUM")
{
fi>>s>>t;
fo<<sum(t)-sum(s-1)<<endl;
}
if(move=="ADD")
{
fi>>k>>d;
add(k,d);
}
}
return 0;
}