Pagini recente » Cod sursa (job #756013) | Cod sursa (job #887912) | Cod sursa (job #1106727) | Cod sursa (job #69809) | Cod sursa (job #954854)
Cod sursa(job #954854)
#include<cstdio>
using namespace std;
int aib[15005];
int n;
int lsb(int x)
{
return x & -x;
}
void update(int x, int val)
{
int i;
for(i = x; i <= n; i += lsb(i))
aib[i] += val;
}
int query(int x)
{
int ans = 0;
while(x)
{
ans += aib[x];
x -= lsb(x);
}
return ans;
}
int main()
{
freopen("datorii.in", "r", stdin);
freopen("datorii.out", "w", stdout);
int m, i, a, b, c;
scanf("%d%d", &n, &m);
for(i = 1; i <= n; ++ i)
{
scanf("%d", &a);
update(i, a);
}
for(i = 1; i <= m; ++ i)
{
scanf("%d%d%d", &a, &b, &c);
if(! a)
update(b, -c);
else
{
a = query(c);
printf("%d\n", (query(c) - query(b - 1)));
}
}
return 0;
}