Pagini recente » Cod sursa (job #1165163) | Cod sursa (job #2520516) | Cod sursa (job #2172070) | Cod sursa (job #2033357) | Cod sursa (job #2173170)
#include <iostream>
#include <cstdio>
#define NMAX 15005
using namespace std;
int N, M, aib[NMAX];
int zero(int t) {
return (t ^ (t -1)) & t;
}
void adaugare(int poz, int val) {
for(int i = poz; i <= N; i += zero(i)) {
aib[i] += val;
}
}
void read() {
scanf("%d %d", &N, &M);
for(int i = 1; i <= N; ++i) {
int x;
scanf("%d", &x);
adaugare(i, x);
}
}
int suma(int st, int dr) {
int s1 = 0, s2 = 0;
for(int i = dr; i >= 1; i -= zero(i)) {
s1 += aib[i];
}
for(int i = st - 1; i >= 1; i -= zero(i)) {
s2 += aib[i];
}
return s1 - s2;
}
void operations() {
for(int i = 1; i <= M; ++i) {
int op, x, y;
scanf("%d %d %d", &op, &x, &y);
if(op == 0) {
adaugare(x, -1 * y);
}
else {
int sol = suma(x, y);
printf("%d\n", sol);
}
}
}
int main()
{
freopen("datorii.in", "r", stdin);
freopen("datorii.out", "w", stdout);
read();
operations();
return 0;
}