Cod sursa(job #847779)

Utilizator tibi9876Marin Tiberiu tibi9876 Data 4 ianuarie 2013 14:56:27
Problema Datorii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.52 kb
#include<fstream>
using namespace std;

int aib[15001],i,n,m,x,y,z;

void update(int k,int x)
{
	int i;
	for (i=k;i<=n;i=(i | (i-1))+1)
		aib[i]+=x;
}

int query(int k)
{
	int i,s=0;
	for (i=k;i>0;i=i & (i-1))
		s+=aib[i];
	return s;
}

int main()
{
	ifstream f("datorii.in");
	ofstream g("datorii.out");
	f >> n >> m;
	for  (i=1;i<=n;i++)
	{
		f >> x;
		update(i,x);
	}
	for (i=1;i<=m;i++)
	{
		f >> x >> y >> z;
		if (x==0)
			update(y,-z);
		else g << query(z)-query(y-1) << "\n";
	}
	return 0;
}