Pagini recente » Cod sursa (job #1456539) | Cod sursa (job #69544)
Cod sursa(job #69544)
#include <cstdio>
#define maxn 15001
FILE *in = fopen("datorii.in","r"), *out = fopen("datorii.out","w");
int n, m;
int b[maxn]; // AIB
int query(int x)
{
int r = 0;
while ( x )
r += b[x], x -= x^(x-1)&x;
return r;
}
void update(int x, int val)
{
while ( x <= n )
b[x] += val, x += x^(x-1)&x;
}
int main()
{
fscanf(in, "%d %d", &n, &m);
int a, c, d;
for ( int i = 1; i <= n; ++i )
fscanf(in, "%d", &a), update(i, a);
for ( int i = 1; i <= m; ++i )
{
fscanf(in, "%d %d %d", &a, &c, &d);
if ( a )
fprintf(out, "%d\n", query(d) - query(c-1));
else
update(c^(c-1)&c, -d);
}
return 0;
}