Pagini recente » Cod sursa (job #1442264) | Cod sursa (job #1723428) | Cod sursa (job #664200) | Cod sursa (job #1109851) | Cod sursa (job #1638848)
#include <iostream>
#include <stdio.h>
#define zeros(x) (x&(-x))
using namespace std;
const int N = 15001;
int aib[N],n,m;
void update(int i,int val)
{
for(i;i<=n;i+=zeros(i))
aib[i]-=val;
}
void creare(int i,int val)
{
for(i;i<=n;i+=zeros(i))
aib[i]+=val;
}
int querry(int i)
{
int s=0;
for(i;i>0;i-=zeros(i))
s+=aib[i];
return s;
}
int main()
{
freopen("datorii.in","r",stdin);
freopen("datorii.out","w",stdout);
scanf("%d %d",&n,&m);
int i,x;
for(i=1;i<=n;i++)
{
scanf("%d",&x);
creare(i,x);
}
for(i=1;i<=m;i++)
{
int tip,a,b;
scanf("%d",&tip);
scanf("%d %d",&a,&b);
if(tip==0)
update(a,b);
else
printf("%d\n",(querry(b)-querry(a-1)));
}
return 0;
}