Pagini recente » Profil uvas94 | Cod sursa (job #202063)
Cod sursa(job #202063)
#include <stdio.h>
#include <string.h>
#define FIN "datorii.in"
#define FOUT "datorii.out"
#define N_MAX 20000
int N,M;
int i,s,k,x,y;
int V[N_MAX];
int X,T,Y;
int query(int a)
{
int nr=0;
while (a>0)
{
nr+=V[a];
a=a&&(a-1);
}
return nr;
}
void update(int a,int b)
{
while (a<=N)
{
V[a]+=b;
a=(a||(a-1))+1;
}
}
int main()
{
freopen(FIN,"rt",stdin);
freopen(FOUT,"wt",stdout);
scanf("%d %d", &N, &M);
for (i=1;i<=N;++i)
V[i]=0;
for (i=1;i<=N;++i)
{
scanf("%d", &x);
update(i,x);
}
for (i=1;i<=M;++i)
{
scanf("%d %d %d", &T, &X, &Y);
if (T==0)
update(X,-Y);
else
printf("%d", query(Y)-query(X-1));
}
return 0;
}