Cod sursa(job #2917324)

Utilizator BuzatuCalinBuzatu Calin BuzatuCalin Data 4 august 2022 13:53:12
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
//datorii-Infoarena
#include <iostream>
#include <fstream>
using namespace std;
#define DIM 15001
#define zeros(x) ((x ^ (x-1)) & x)
int n, q, v[DIM], aib[DIM], op, x, y;
const string file="datorii";
ifstream fin(file + ".in");
ofstream fout(file + ".out");
void Add(int x,int quantity){
    for(int i = x;i <= n; i += zeros(i)){
        aib[i] += quantity;
    }
}
int compute(int x){
    int ret = 0;
    for(int i = x; i > 0; i -= zeros(i)){
        ret += aib[i];
    }
    return ret;
}
void citire(){
    fin >> n >> q;
    for(int i = 1; i <= n; i++){
        fin >> v[i];
        Add(i, v[i]);
    }
}
int main(){
    citire();
    for(int i = 0; i < q; i++){
        fin >> op >> x >> y;
        if(op == 0){
            Add(x, -y);
        }
        else{
            fout << compute(y) - compute(x-1) <<'\n';
        }
    }
}