Pagini recente » Cod sursa (job #703506) | Cod sursa (job #740309) | Cod sursa (job #1832079) | Cod sursa (job #698509) | Cod sursa (job #2300848)
#include <cstdio>
using namespace std;
int aib[15005], n;
void update(int poz, int val)
{
for(; poz <= n; poz += poz & -poz) aib[poz] += val;
}
int query(int a, int b)
{
int s = 0;
for(; b; b -= b & -b) s += aib[b];
for(a = a - 1; a; a -= a & -a) s -= aib[a];
return s;
}
int main()
{
freopen("datorii.in", "r", stdin);
freopen("datorii.out", "w", stdout);
int m, a, b;
bool t;
scanf("%d%d", &n, &m);
for(int i = 1; i <= n; i++)
scanf("%d", &a), update(i, a);
while(m--)
{
scanf("%d%d%d", &t, &a, &b);
if(t) printf("%d\n", query(a, b));
else update(a, -b);
}
return 0;
}