Pagini recente » Cod sursa (job #2646758) | Cod sursa (job #3181827) | Cod sursa (job #3243611) | Cod sursa (job #2195070) | Cod sursa (job #3207521)
#include <bits/stdc++.h>
#define ub(x) (x&(-x))
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
int n,m,a[15005];
void AIB(int k,int val)
{
for(int i=k;i<=n;i+=ub(i)) a[i]+=val;
}
unsigned long long add(int pos)
{
unsigned long long s=0;
for(int i=pos;i>0;i-=ub(i))
s+=a[i];
return s;
}
int main()
{
f>>n>>m;
for(int i=1;i<=n;++i)
{
int x;
f>>x;
AIB(i,x);
}
for(int i=1;i<=m;++i)
{
int c;
f>>c;
if(c==0)
{
int x,val,k;
f>>x>>val;
k=val*(-1);
AIB(x,k);
}
else
{
int x,y;
f>>y>>x;
g<<add(x)-add(y-1)<<'\n';
}
}
return 0;
}