Pagini recente » Cod sursa (job #1961835) | Cod sursa (job #217816) | Cod sursa (job #2526872) | Cod sursa (job #1292365) | Cod sursa (job #1687588)
#include <iostream>
#include <cstdio>
#define nmax 15005
using namespace std;
int n,m;
int aib[nmax];
inline int zeros(int x)
{
return x^(x-1)&x;
}
inline void add(int x,int q)
{
for(int i=x;i<=n;i+=zeros(i)) aib[i]+=q;
}
inline int compute(int x)
{
int rez=0;
for(int i=x;i>=1;i-=zeros(i)) rez+=aib[i];
return rez;
}
int main()
{
int i,nr,tip,x,y;
freopen("datorii.in","r",stdin);
freopen("datorii.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
{
scanf("%d",&nr);
add(i,nr);
}
for(i=1;i<=m;i++)
{
scanf("%d%d%d",&tip,&x,&y);
if(tip==0) add(x,y*-1);
if(tip==1) printf("%d\n",compute(y)-compute(x-1));
}
fclose(stdin);
fclose(stdout);
return 0;
}