Pagini recente » Cod sursa (job #1551914) | Cod sursa (job #962167) | Cod sursa (job #2655263) | Cod sursa (job #1618246) | Cod sursa (job #2959247)
#include <bits/stdc++.h>
using namespace std ;
ifstream fin("datorii.in") ;
ofstream fout("datorii.out") ;
#define zeros(x) ((x^(x-1))&x)
const int NM=15001 ;
int n,m,aib[NM],x,y,op ;
void add(int pos,int x)
{
for(int i=pos; i<=n; i+=zeros(i)) aib[i]+=x ;
}
void update(int pos,int x)
{
for(int i=pos; i<=n; i+=zeros(i)) aib[i]-=x ;
}
int query(int pos)
{
int sum=0 ;
for(int i=pos; i>0; i-=zeros(i)) sum+=aib[i] ;
return sum ;
}
int main()
{
fin>>n>>m;
for(int i=1; i<=n; ++i) fin>>x,add(i,x) ;
for(int i=1;i<=m;++i){
fin>>op>>x>>y ;
if(!op) update(x,y) ;
else fout<<query(y)-query(x-1)<<'\n' ;
}
return 0;
}