Pagini recente » Cod sursa (job #954187) | Cod sursa (job #511415) | Cod sursa (job #2817862) | Cod sursa (job #241974) | Cod sursa (job #560791)
Cod sursa(job #560791)
#include<stdio.h>
#define nrn 15001
#define zzz(x) ((x^(x-1))&x)
using namespace std;
int AIB[nrn],n,m;
void upup(int i,int val)
{
for(i;i<=n;i+=zzz(i))
AIB[i]+=val;
}
int suma(int ind)
{
int i,sum=0;
for(i=ind;i>0;i-=zzz(i))
sum+=AIB[i];
return sum;
}
void unu()
{
int a,b;
scanf("%d %d",&a,&b);
upup(a,-b);
}
void doi()
{
int a,b;
scanf("%d %d",&a,&b);
printf("%d\n",suma(b)-suma(a-1));
}
int main()
{freopen("datorii.in","r",stdin);
freopen("datorii.out","w",stdout);
int i,x,c;
scanf("%d %d",&n,&m);
for(i=1;i<=n;++i)
{
scanf("%d",&x);
upup(i,x);
}
for(i=1;i<=m;i++)
{
scanf("%d",&c);
switch(c)
{
case(0):unu();break;
case(1):doi();break;
}
}
return 0;
}