Pagini recente » Cod sursa (job #3186204) | Cod sursa (job #1280225) | Cod sursa (job #578735) | Cod sursa (job #2973838) | Cod sursa (job #1202973)
#include <cstdio>
using namespace std;
int v[15005];
int suma(int a){
int pas,s=0;
pas=a;
for(;pas>=1;pas-=(pas&-pas)){
s+=v[pas];
}
return s;
}
void add(int a,int b,int n){
int pas=a;
for(;pas<=n;pas+=(pas&-pas)){
v[pas]+=b;
}
}
void Dadd(int a,int b,int n){
int pas=a;
for(;pas<=n;pas+=(pas&-pas)){
v[pas]-=b;
}
}
int main(){
freopen("datorii.in","r",stdin);
freopen("datorii.out","w",stdout);
int n,m,x,a,b,c;
scanf("%d%d",&n,&m);
for(int i=1;i<=n;++i){
scanf("%d",&x);
add(i,x,n);
}
for(int i=1;i<=m;++i){
scanf("%d%d%d",&a,&b,&c);
if(a==0){
Dadd(b,c,n);
}else{
printf("%d\n",suma(c)-suma(b-1));
}
}
return 0;
}