Cod sursa(job #781290)

Utilizator alex_unixPetenchea Alexandru alex_unix Data 24 august 2012 02:02:39
Problema Datorii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include <fstream>
using namespace std;

ifstream in("datorii.in");
ofstream out("datorii.out");

const int N=15005;

int aib[N],n,m;

int step(int x)
{
	return x&(-x);
}

int query(int x)
{
    int sum=0;

    for(;x;x-=step(x))
        sum+=aib[x];

    return sum;
}

void update(int x,int val)
{
    for(;x<=n;x+=step(x))
        aib[x]+=val;
}


int main()
{
	int q,x,y;
	in>>n>>m;
	
	for(int i=1;i<=n;i++)
	{
		in>>x;
		update(i,x);
	}
	
	while(m--)
	{
		in>>q>>x>>y;
		
		if(q==0)
			update(x,-y);
		else
			out<<(query(y)-query(x-1))<<"\n";
	}
	
	return 0;
}