Pagini recente » Cod sursa (job #2532733) | Cod sursa (job #1306787) | Cod sursa (job #1165484) | Cod sursa (job #1532281) | Cod sursa (job #644673)
Cod sursa(job #644673)
#include <stdio.h>
#define MAXN 20000
int Aib[MAXN], F[MAXN];
int N,M;
int i,tip,x,y;
inline void add(int poz, int val)
{
for (; poz <= N; poz += F[poz])
Aib[poz] += val;
}
inline int sum(int poz)
{
int suma = 0;
for (; poz; poz -= F[poz])
suma += Aib[poz];
return suma;
}
int main()
{
freopen("datorii.in","r",stdin);
freopen("datorii.out","w",stdout);
scanf("%d %d",&N,&M);
F[1] = 1;
for (i=2; i<=N; ++i)
if (i & 1)
F[i] = 1;
else
F[i] = F[i>>1] << 1;
for (i=1; i<=N; ++i){
scanf("%d",&x);
add(i, x);
}
for (i=1; i<=M; ++i){
scanf("%d %d %d",&tip, &x, &y);
if (tip == 0)
add(x, -y);
else
printf("%d\n", sum(y)-sum(x-1));
}
return 0;
}