Cod sursa(job #1438364)

Utilizator fanache99Constantin-Buliga Stefan fanache99 Data 19 mai 2015 19:21:20
Problema Datorii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include<cstdio>
using namespace std;
int aib[15001],n;
void add(int poz,int val){
    while(poz<=n){
        aib[poz]+=val;
        poz=poz+((poz&(poz-1))^poz);
    }
}
int sum(int poz){
    int s=0;
    while(poz>0){
        s+=aib[poz];
        poz=poz-((poz&(poz-1))^poz);
    }
    return s;
}
int main(){
    freopen("datorii.in","r",stdin);
    freopen("datorii.out","w",stdout);
    int m,i,tip,a,b;
    scanf("%d%d",&n,&m);
    for(i=1;i<=n;i++){
        scanf("%d",&a);
        add(i,a);
    }
    for(i=1;i<=m;i++){
        scanf("%d%d%d",&tip,&a,&b);
        if(tip==0)
            add(a,-b);
        else
            printf("%d\n",sum(b)-sum(a-1));
    }
	return 0;
}