Cod sursa(job #293025)

Utilizator codrinCodrin LACHE codrin Data 31 martie 2009 21:32:21
Problema Datorii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb
#include<stdio.h>

int A[15005],n;

int query(int x)
{
    int r = 0;
    for (; x; x -= x ^ (x-1) & x)
	r += A[x];
    return r;
}

void update(int x, int v)
{
      for (; x <= n; x += x^(x-1) & x)
	  A[x] += v;
}

int main()
{
  freopen("datorii.in","r",stdin);
  freopen("datorii.out","w",stdout);
  int m,i,x,y,z;
  scanf("%d %d",&n,&m);
  for(i=1;i<=n;++i)
	scanf("%d",A[i]);
  for(i=1;i<=m;++i)
	{
		scanf("%d %d %d",&x,&y,&z);
		if(x==0)
			update(y,z);
		else if(x==1)
			printf("%d\n",query(z)-query(y-1));
	}
return 0;
}