Pagini recente » Cod sursa (job #3184604) | Cod sursa (job #1621508) | Cod sursa (job #1378550) | Cod sursa (job #1508443) | Cod sursa (job #1425401)
#include <stdio.h>
#include <stdlib.h>
int aib[100001],n;
void upd(int pl,int i){
while(i<=n){
aib[i]+=pl;
i+=i&(i-1)^i;
}
}
int sum(int a){
int s=0;
while(a>0){
s+=aib[a];
a=a&(a-1);
}
return s;
}
int main()
{
FILE*fin,*fout;
int k,i,m,c,a,b,x;
fin=fopen("datorii.in","r");
fscanf(fin,"%d%d",&n,&m);
for(i=1;i<=n;i++){
fscanf(fin,"%d",&x);
upd(x,i);
}
fout=fopen("datorii.out","w");
for(i=0;i<m;i++){
fscanf(fin,"%d",&c);
if(c==0){
fscanf(fin,"%d%d",&a,&b);
upd(-b,a);
}
if(c==1){
fscanf(fin,"%d%d",&a,&b);
fprintf(fout,"%d\n",sum(b)-sum(a-1));
}
}
fclose(fin);
fclose(fout);
return 0;
}