Pagini recente » Cod sursa (job #1977221) | Cod sursa (job #1174685) | Cod sursa (job #1501835) | Cod sursa (job #2311595) | Cod sursa (job #348392)
Cod sursa(job #348392)
#include<stdio.h>
int n, m, i, x, tip, t, v, d[15002];
void update(int poz, int val){
for (; poz <= n; poz += (poz ^ (poz-1)) & poz)
d[poz] += val;
}
int query(int poz){
int rez = 0;
for (; poz; poz -= (poz ^ (poz-1)) & poz)
rez += d[poz];
return rez;
}
int main()
{
freopen("datorii.in", "rt", stdin);
freopen("datorii.out", "wt", stdout);
scanf("%d%d", &n, &m);
for (i = 1; i <= n; i ++){
scanf("%d", &x);
update(i, x);
}
for (i = 1; i <= m; i ++){
scanf("%d%d%d", &tip, &t, &v);
if (!tip)
update(t, -v);
else
printf("%d\n", query(v) - query(t-1));
}
return 0;
}