Pagini recente » Cod sursa (job #3032882) | Cod sursa (job #577889) | Cod sursa (job #1917251) | Cod sursa (job #947942) | Cod sursa (job #1048810)
#include <cstdio>
FILE*f=fopen("datorii.in","r");
FILE*h=fopen("datorii.out","w");
int t[100001];
int n,m;
int query(int i){
int s=0;
while ( i!=0 ){
s+=t[i];
i-= ( i&-i );
}
return s;
}
void update(int i, int val){
while ( i<=n ){
t[i]+=val;
i+= ( i&-i );
}
}
void update2(int i, int val){
while ( i<=n ){
t[i]-=val;
i+= ( i&-i );
}
}
int main()
{
fscanf(f,"%d%d",&n,&m);
for ( int i=1;i<=n;++i ){
int x;
fscanf(f,"%d",&x);
update(i,x);
}
for ( int i=1;i<=m;++i ){
int fl,x,y;
fscanf(f,"%d",&fl);
if ( fl==0 ){
fscanf(f,"%d%d",&x,&y);
update2(x,y);
}
if ( fl==1 ){
fscanf(f,"%d%d",&x,&y);
fprintf(h,"%d\n",query(y)-query(x-1));
}
}
return 0;
}