Pagini recente » Cod sursa (job #2699809) | Cod sursa (job #855681) | Cod sursa (job #2921435) | Cod sursa (job #3223751) | Cod sursa (job #3243980)
#include <bits/stdc++.h>
using namespace std;
int a[100005];
int v[100005];
int suma(int BITree[],int index)
{
int sum=0;
while(index>0)
{
sum+=BITree[index];
index-=index & (-index);
}
return sum;
}
void updateBIT(int BITree[],int n,int index,int val)
{
while(index<=n)
{
BITree[index]+=val;
index+=index & (-index);
}
}
int main()
{
ifstream cin("datorii.in");
ofstream cout("datorii.out");
int n,m,b;
cin >> n >> m;
for(int z=1;z<=n;z++)
{
cin >> a[z];
updateBIT(v,n,z,a[z]);
}
for(int i=1;i<=m;i++)
{
int t,val;
int p,q;
int sum1=0,sum2=0;
cin >> b;
if(b==0)
{
cin >> t >> val;
updateBIT(v,n,t,-val);
}
else if(b==1)
{
cin >> p >> q;
sum2=suma(v,q);
sum1=suma(v,p-1);
cout << sum2-sum1 << '\n';
}
}
return 0;
}