Pagini recente » Cod sursa (job #2187785) | Cod sursa (job #1397856) | Cod sursa (job #1301114) | Cod sursa (job #2949464) | Cod sursa (job #1776279)
#include <stdio.h>
#define lim 15001
int aib[lim],n;
void update(int poz,int val){
while(poz<=n){
aib[poz]+=val;
poz=poz+((poz&(poz-1))^poz);
}
}
int query(int poz){
int s=0;
while(poz>=1){
s+=aib[poz];
poz=poz-((poz&(poz-1))^poz);
}
return s;
}
int main(){
FILE *fin,*fout;
fin=fopen("datorii.in","r");
fout=fopen("datorii.out","w");
int i,m,a,b,cer;
fscanf(fin,"%d%d",&n,&m);
for(i=1;i<=n;i++){
fscanf(fin,"%d",&a);
update(i,a);
}
for(i=1;i<=m;i++){
fscanf(fin,"%d%d%d",&cer,&a,&b);
if(cer==1){
cer=query(b)-query(a-1);
fprintf(fout,"%d\n",cer);
}
else{
b=b*(-1);
update(a,b);
}
}
fclose(fin);
fclose(fout);
return 0;
}