Pagini recente » Cod sursa (job #1708528) | Clasament antr10 | Cod sursa (job #1875306) | Cod sursa (job #608897) | Cod sursa (job #2393261)
#include <bits/stdc++.h>
#define p(x) (x & -x)
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
const int NMAX = 15005;
int aib[NMAX];
int n,m;
void update(int poz,int val)
{
for(int i=poz;i<=n;i+=p(i))
aib[i]+=val;
}
int query(int poz)
{
int sum=0;
for(int i=poz;i>=1;i-=p(i))
sum+=aib[i];
return sum;
}
int main()
{
fin >> n >> m;
int x;
for(int i=1;i<=n;i++)
{
fin >> x;
update(i,x);
}
int T,V,A,B,operatie;
for(int i=1;i<=m;i++)
{
fin >> operatie;
if(operatie==0)
{
fin >> T >> V;
update(T,-V);
}
else if(operatie==1)
{
fin >> A >> B;
fout << query(B)-query(A-1) << '\n';
}
}
return 0;
}