Pagini recente » Cod sursa (job #1998472) | Cod sursa (job #2933902) | Cod sursa (job #708197) | Cod sursa (job #2011120) | Cod sursa (job #3329675)
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("datorii.in");
ofstream fout ("datorii.out");
const int Nmax=15000;
int aib[Nmax+3];
int N,M;
int tip,T,V,P,Q;
int ub(int x)
{
return (x&(-x));
}
void add(int x, int y)
{
for(int i=x; i<=N; i+=ub(i))
aib[i]+=y;
}
int sum(int x)
{
int s=0;
for(int i=x; i>=1; i-=ub(i))
s+=aib[i];
return s;
}
int main()
{
fin>>N>>M;
int x;
for(int i=1; i<=N; i++)
{
fin>>x;
add(i,x);
}
while(M--)
{
fin>>tip;
if(tip==0)
{
fin>>T>>V;
add(T,V*(-1));
}
else
{
fin>>P>>Q;
fout<<sum(Q)-sum(P-1)<<'\n';
}
}
return 0;
}