Cod sursa(job #2441391)

Utilizator uvIanisUrsu Ianis Vlad uvIanis Data 20 iulie 2019 13:47:20
Problema Datorii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>

int n, m;
int fenwick_tree[15000 + 1];

inline int LSB(int index){return (index&-index);}



int query(int index){
    int sum = 0;
    for(; index>0; index -= LSB(index)) sum+= fenwick_tree[index];
    return sum;
}

void update(int index, int value){
    for(; index<=n; index += LSB(index)) fenwick_tree[index]+=value;
}

int main()
{
   std::ifstream fin("datorii.in");
   std::ofstream fout("datorii.out");

   fin>>n>>m;

   int a;
   for(int i=1; i<=n; i++){
        fin>>a;
        update(i, a);

   }

   int c, x, y;
   for(int i=1; i<=m; i++){
        fin>>c>>x>>y;

        if(c) fout<<query(y) - query(x-1)<<std::endl;
        else update(x, -y);
   }

}