Cod sursa(job #2356141)

Utilizator RazvanPanaiteRazvan Panaite RazvanPanaite Data 26 februarie 2019 15:34:48
Problema Datorii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <bits/stdc++.h>
#define DMAX 15010

using namespace std;

ifstream fin("datorii.in");
ofstream fout("datorii.out");

int AIB[DMAX];
int n,m;

void Add(int x,int quantity);
int Compute(int x);

int main()
{int i,val,x,y;
 fin>>n>>m;
 for(i=1;i<=n;i++)
     {fin>>val;
      Add(i,val);
     }
 for(i=1;i<=m;i++)
     {fin>>val>>x>>y;
      if(!val)
         Add(x,-y);
         else
         fout<<Compute(y)-Compute(x-1)<<'\n';
     }
 return 0;
}

void Add(int x,int quantity)
{int i;
 for(i=x;i<=n;i+= ((i) & (-i)))
     AIB[i]+=quantity;
}
int Compute(int x)
{int i,ret=0;
 for(i=x;i>0;i-= ((i) & (-i)))
     ret+=AIB[i];
 return ret;
}