Cod sursa(job #2850997)

Utilizator MateiStoianStoian Matei Octavian MateiStoian Data 17 februarie 2022 22:00:06
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.77 kb
//cu aib
#include<fstream>
using namespace std;
int n,m;
int data[15001];
#define flip(n) (n&(-n))
fstream cin("datorii.in",ios::in),cout("datorii.out",ios::out);
void add(int ind,int v){
    for(;ind<=n;ind+=flip(ind)){
        data[ind]+=v;
    }
    
}
int sum(int ind){
    int s = 0;
    for(ind;ind>0;ind-=flip(ind)){
        s+=data[ind];
    }
    return s;
}
int main(){
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        int x;
        cin>>x;
        add(i,x);
    }
    bool op;
    for(;m;m--){
        cin>>op;
        if(op){
            int r,l;
            cin>>l>>r;
            cout<<sum(r)-sum(l-1)<<'\n';
        }
        else{
            int x,v;
            cin>>x>>v;
            add(x,-v);
        }
    }
    return 0;
}