Pagini recente » Istoria paginii runda/monday | Cod sursa (job #2681085) | Cod sursa (job #2458158) | Cod sursa (job #779740) | Cod sursa (job #2631946)
#include <stdio.h>
#define N 15000
int n, aib[N+1];
void update (int i, int x) {
for (; i<=n; i+=i&(-i))
aib[i]+=x;
}
int query (int i) {
int ans=0;
for (; i; i-=i&(-i))
ans+=aib[i];
return ans;
}
int main (void) {
FILE *fin=fopen("datorii.in", "r"),
*fout=fopen("datorii.out", "w");
int m, i, x, y;
fscanf(fin, "%d%d", &n, &m);
for (i=1; i<=n; ++i) {
fscanf(fin, "%d", &x);
update(i, x);
}
for (; m; --m) {
fscanf(fin, "%d%d%d", &i, &x, &y);
if (i)
fprintf(fout, "%d\n", query(y)-query(x-1));
else
update(x, -y);
}
return 0;
}