Cod sursa(job #2060400)

Utilizator tgm000Tudor Mocioi tgm000 Data 8 noiembrie 2017 10:46:30
Problema Datorii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<cstdio>
int aib[15001];
int n;
void add(int poz,int x){
    while(poz<=n){
        aib[poz]+=x;
        poz+=poz&(-poz);
    }
}
int sum(int poz){
    int s=0;
    while(poz!=0){
        s+=aib[poz];
        poz-=poz&(-poz);
    }
    return s;
}
int main(){
    int m,i,x,y,op;
    freopen("datorii.in","r",stdin);
    freopen("datorii.out","w",stdout);
    scanf("%d%d",&n,&m);
    for(i=1;i<=n;i++){
        scanf("%d",&x);
        add(i,x);
    }
    for(i=1;i<=m;i++){
        scanf("%d%d%d",&op,&x,&y);
        if(op==0)
            add(x,-y);
        else
            printf("%d\n",sum(y)-sum(x-1));
    }
    return 0;
}