Pagini recente » Cod sursa (job #1443138) | Cod sursa (job #2032017) | Cod sursa (job #829650) | Cod sursa (job #514218) | Cod sursa (job #1855965)
#include <cstdio>
#define NARB 15002
using namespace std;
int n, m, x, Arb[NARB];
inline void Update(int i, int x){
for(int p = i; p <= n ; p = p + (p & (-p)))
Arb[p] += x;
}
inline int Query(int i){
int Sum = 0;
for(int p = i; p != 0 ; p = p - (p & (-p)))
Sum += Arb[p];
return Sum;
}
int main()
{
freopen("datorii.in", "r", stdin);
freopen("datorii.out", "w", stdout);
scanf("%d%d", &n, &m);
for(int i = 1; i <= n ; ++i){
scanf("%d", &x);
if(x == 0) continue ;
Update(i, x);
}
int tip, pos, a, b;
for(int i = 1; i <= m ; ++i){
scanf("%d%d%d", &tip, &pos, &x);
if(tip == 0){
x = -x;
Update(pos, x);
continue ;
}
a = pos; b = x;
printf("%d\n", Query(b) - Query(a - 1));
}
return 0;
}