Cod sursa(job #1694699)

Utilizator GeorginskyGeorge Georginsky Data 25 aprilie 2016 20:03:09
Problema Datorii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <iostream>
#include <fstream>
#define NMAX 15001
using namespace std;
ifstream in("datorii.in");
ofstream out("datorii.out");
int n, m, BIT[NMAX];

void update1(int x, int value){
   for(; x<=n; x+=x&-x)BIT[x]+=value;
}

void update2(int x, int value){
   for(; x<=n; x+=x&-x)BIT[x]-=value;
}

int query(int x){
   int s=0;
   for(; x>0; x-=x&-x)s+=BIT[x];
   return s;
}

void read(){
   in>>n>>m;
   int x, op, y; 
   for(int i=1; i<=n; i++){
      in>>x;
      update1(i, x);
   }
   for(int i=1; i<=m; i++){
      in>>op;
      if(op==0){
         in>>x>>y;
         update2(x, y);
      }else{
         in>>x>>y;
         out<<query(y)-query(x-1)<<"\n";
      }
   }
}

int main(){
   read();
}