Pagini recente » Cod sursa (job #2689108) | Cod sursa (job #2494903) | Cod sursa (job #684916) | Borderou de evaluare (job #2063669) | Cod sursa (job #1046886)
#include<cstdio>
using namespace std;
int n,m,t,a,b,v[150005];
inline int LBS(int x)
{
return (x&(-x));
}
inline void Update(int poz, int val)
{
for (int i=poz;i<=n;i+=LBS(i))
v[i]+=val;
}
inline int Sum(int poz)
{
int s=0;
for (int i=poz;i;i-=LBS(i))
s+=v[i];
return s;
}
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",&t);
Update(i,t);
}
for (i=1;i<=m;++i)
{
scanf("%d%d%d",&t,&a,&b);
if (!t) Update(a,-b);
else printf("%d\n",Sum(b)-Sum(a-1));
}
return 0;
}