Pagini recente » Cod sursa (job #3329942) | Cod sursa (job #3342380) | Cod sursa (job #3342379) | Cod sursa (job #3342383) | Cod sursa (job #3323840)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
const int lim=1e5+10;
int n,q,i,x,s[4*lim],t;
void update(int x,int val)
{
x+=n;
while(x)
{
s[x]+=val;
x/=2;
}
}
int query(int l,int r)
{
l+=n;
r+=n;
int sol=0;
while(l<=r)
{
if(l%2==1)sol+=s[l];
if(r%2==0)sol+=s[r];
l=(l+1)/2;
r=(r-1)/2;
}
return sol;
}
void solvetask()
{
fin>>t;
if(t==1)
{
int x,y;
fin>>x>>y;
fout<<query(x-1,y-1)<<'\n';
}
else
{
int x,val;
fin>>x>>val;
update(x-1,-val);
}
}
int main()
{
fin>>n>>q;
for(i=1;i<=n;i++)
{
fin>>x;
update(i-1,x);
}
while(q--)
{
solvetask();
}
return 0;
}