记录编号 397545 评测结果 AAAAAAATAAAAATA
题目名称 数列操作A 最终得分 86
用户昵称 GravatarLetter 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;
}