Pagini recente » Cod sursa (job #2402242) | Cod sursa (job #2758875) | Cod sursa (job #48806) | Cod sursa (job #2593848) | Cod sursa (job #1851126)
#include <cstdio>
#define lb(x) x&(-x)
#define NMAX 15000
#include <cmath>
#include <algorithm>
using namespace std;
int N,AiB[NMAX+5],M;
int getAiB(int p)
{
int s=0;
for(int i=p;i>=1;i-=lb(i))
s+=AiB[i];
return s;
}
void addAiB(int p,int k)
{
for(int i=p;i<=N;i+=lb(i))
AiB[i]+=k;
}
int main() {
freopen("datorii.in","r",stdin);
freopen("datorii.out","w",stdout);
scanf("%d %d",&N,&M);
for(int i=1; i<=N; i++) {
int x;
scanf("%d",&x);
addAiB(i,x);
}
for(int i=1; i<=M; i++) {
int a,b,c;
scanf("%d %d %d",&a,&b,&c);
if(a==0)
addAiB(b,-c);
else {
int s=getAiB(c)-getAiB(b-1);
printf("%d \n",s);
}
}
return 0;
}