Pagini recente » Cod sursa (job #508482) | Cod sursa (job #1373060) | Cod sursa (job #713437) | Cod sursa (job #3279469) | Cod sursa (job #1521293)
#include <bits/stdc++.h>
#define ub(x) (x&(-x))
using namespace std;
int n,m,x,instr,y,sum,aib[100005];
void edd(int poz,int x)
{
for (int i = poz; i<=n ; i+=ub(i))
aib[i]+=x;
return ;
}
int query(int poz1)
{
int s=0;
for (int i=poz1; i ; i-=(ub(i)))
s+=aib[i];
return s;
}
int main()
{
freopen("datorii.in","r",stdin);
freopen("datorii.out","w",stdout);
scanf("%d %d\n",&n,&m);
for (int i = 1 ; i<=n ; ++i)
{
scanf("%d",&x);
edd(i,x);
}
for (int i = 1 ; i<=m ; ++i)
{
scanf("%d %d %d\n",&instr,&x,&y);
if (instr==0)
{
edd(x,-y);
}
else
{
sum+=query(y)-query(x-1);
printf("%d\n",query(y)-query(x-1));
}
}
// printf("%d\n",sum);
return 0;
}