Cod sursa(job #2646250)

Utilizator tryharderulbrebenel mihnea stefan tryharderul Data 31 august 2020 15:42:26
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <iostream>
#include <stdio.h>

#define NMAX 15003

using namespace std;

int n,m,i,j,cer,a,b;
int aib[NMAX];

inline int zero(int n){
    return (n^(n-1))&n;
}

void add(int ind,int val){
    int i;

    for(i=ind;i<=n;i=i+zero(i)){
        aib[i]=aib[i]+val;
    }

}

int sum(int ind){
    int i,s=0;

    for(i=ind;i>=1;i=i-zero(i))
        s=s+aib[i];

    return s;
}


int main()
{
    freopen("datorii.in","r",stdin);
    freopen("datorii.out","w",stdout);

    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",&cer,&a,&b);

        if(!cer)
            add(a,-b);
        else
            printf("%d\n",sum(b)-sum(a-1));


    }




    return 0;
}