Pagini recente » Cod sursa (job #2088680) | Cod sursa (job #368313) | Monitorul de evaluare | Cod sursa (job #3295166) | Cod sursa (job #1519287)
#include <bits/stdc++.h>
#define UB(x) (x&(-x))
using namespace std;
int aib[15010],v[15010],m,n,i,a,b,c,s;
void Add(int in,int x)
{
int i;
for(i=in; i<=n; i+=UB(i))
aib[i]+=x;
}
int Suma(int x,int y)
{
int i,s1=0,s2=0;
for(i=x; i>0; i-=UB(i))
s1+=aib[i];
for(i=y-1; i>0; i-=UB(i))
s2+=aib[i];
return s1-s2;
}
int main()
{
freopen("datorii.in","r",stdin);
ofstream g ("datorii.out");
scanf("%d%d",&n,&m);
for(i=1; i<=n; ++i)
{
scanf("%d",&v[i]);
Add(i,v[i]);
}
for(i=1; i<=m; ++i)
{
scanf("%d%d%d",&a,&b,&c);
if(a==0)
Add(b,-c);
else g<<Suma(c,b)<<'\n';
}
return 0;
}