Pagini recente » Cod sursa (job #1002131) | Cod sursa (job #687997) | Cod sursa (job #1823179) | Istoria paginii runda/baraj_oni_2007 | Cod sursa (job #847623)
Cod sursa(job #847623)
#include<cstdio>
#include<algorithm>
using namespace std;
int n,j,k,m,v[15005],s[100005],a,b;
int slb(int x)
{ return (x & (x - 1)) ^ x;}
void update(int x,int y)
{
for (;x<=n;x+=slb(x))
s[x]+=y;
}
int query(int x)
{
int sum=0;
for (;x>=1;x-=slb(x))
sum+=s[x];
return sum;
}
int main()
{
int i;
freopen("datorii.in","r",stdin);
freopen("datorii.out","w",stdout);
scanf("%d %d",&n,&m);
for (i=1;i<=n;i++) scanf("%d",&v[i]),update(i,v[i]);
for (i=1;i<=m;i++)
{
scanf("%d %d %d",&a,&b,&k);
if (a==0) update(b,-k),v[b]-=k;
if (a==1) printf("%d\n",query(k)-query(b-1));
}
return 0;
}