Pagini recente » Cod sursa (job #3165558) | Cod sursa (job #2542855) | Cod sursa (job #2770225) | Cod sursa (job #655323) | Cod sursa (job #3275408)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
#define lsb(i) (i & (-i))
const int NMAX = 15005;
int n, m, aib[NMAX];
void update(int poz, int val)
{
for(int i = poz; i <= n; i += lsb(i))
aib[i] += val;
}
int query(int st, int dr)
{
int sum = 0;
for(int i = dr; i >= 1; i -= lsb(i))
sum += aib[i];
for(int i = st - 1; i >= 1; i -= lsb(i))
sum -= aib[i];
return sum;
}
signed main()
{
fin >> n >> m;
for(int i = 1; i <= n; i++)
{
int val;
fin >> val;
update(i, val);
}
while(m--)
{
int op, a, b;
fin >> op >> a >> b;
if(op == 0)
update(a, -b);
else
fout << query(a, b) << "\n";
}
return 0;
}