Pagini recente » Cod sursa (job #90997) | Cod sursa (job #2096828) | Cod sursa (job #3260477) | Cod sursa (job #2635819) | Cod sursa (job #2918821)
#include <bits/stdc++.h>
#define zeros(x)((x ^ (x - 1)) & x)
using namespace std;
ifstream in("datorii.in");
ofstream out("datorii.out");
int v[150001], aib[150001];
int n, m;
void update(int x, int val)
{
for(int i = x; i <= n; i += zeros(i))
aib[i] += val;
}
int compute(int x)
{
int ret = 0;
for(int i = x; i >= 1; i -= zeros(i))
ret += aib[i];
return ret;
}
int main()
{
in >> n >> m;
for(int i = 1; i <= n; i++)
{
in >> v[i];
update(i, v[i]);
}
for(int i = 1; i <= m; i++)
{
int op, x, y;
in >> op >> x >> y;
if(op == 0)
{
update(x, -y);
}
else if(op == 1)
{
out << compute(y) - compute(x - 1) << '\n';
}
}
return 0;
}