Pagini recente » Cod sursa (job #2139972) | Cod sursa (job #2032452) | Cod sursa (job #549197) | Cod sursa (job #2787231) | Cod sursa (job #2088735)
#include <bits/stdc++.h>
#define in "datorii.in"
#define out "datorii.out"
#define MN 15005
using namespace std;
int N, M, Arb[MN];
void update(int poz, int val);
int query(int poz);
int main()
{
assert(freopen(in, "r", stdin));
assert(freopen(out,"w", stdout));
assert(scanf("%d%d", &N, &M));
for(int x, i = 1; i <= N; ++i)
{
assert(scanf("%d", &x));
update(i, x);
}
for(int tip, a, b; M; --M)
{
assert(scanf("%d%d%d", &tip, &a, &b));
if(!tip)
update(a, -b);
else
{
assert(printf("%d\n", query(b)-query(a-1)));
}
}
return 0;
}
void update(int poz, int val)
{
while(poz <= N)
{
Arb[poz] += val;
poz += (poz & -poz);
}
}
int query(int poz)
{
int sum = 0;
while(poz > 0)
{
sum += Arb[poz];
poz -= (poz & -poz);
}
return sum;
}