Pagini recente » Cod sursa (job #2182812) | Cod sursa (job #1759039) | Cod sursa (job #3264958) | Cod sursa (job #2410638) | Cod sursa (job #2557169)
#include <iostream>
#include <fstream>
#define zeros(x) ((x^(x-1))&x)
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int v[15001],N,M,AIB[15001],x;
int Add(int poz, int val)
{
for(int i=poz;i<=N;i+=zeros(i))
AIB[i]+=val;
}
int Compute(int poz)
{
int ret=0;
for(int i=poz;i>0;i-=zeros(i))
ret+=AIB[i];
return ret;
}
int main()
{
fin>>N>>M;
for(int i=1;i<=N;i++){
fin>>x;
Add(i,x);
}
for(int i=1;i<=M;i++)
{
int nr,T,P;
fin>>nr>>T>>P;
if(!nr)
Add(T,(-1)*P);
else
fout<<Compute(P)-Compute(T-1)<<'\n';
}
}