Pagini recente » Cod sursa (job #1860874) | Cod sursa (job #2271978) | Cod sursa (job #926684) | Cod sursa (job #986136) | Cod sursa (job #213915)
Cod sursa(job #213915)
//cu arbori indexati binar
#include <cstdio>
#define step ((k ^ (k - 1)) & k)
#define MAX_N 15005
int V[MAX_N], A[MAX_N];
int N, M;
void update(int k, int val)
{
while(k <= N)
{
A[k] += val;
k += step;
}
}
int sum(int k)
{
int Res = 0;
while(k)
{
Res += A[k];
k -= step;
}
return Res;
}
void citire()
{
scanf("%d %d",&N,&M);
for(int i = 1; i <= N; ++i)
{
scanf("%d", V+i);
update(i,V[i]);
}
}
void solve()
{
int t, a, b;
while(M--)
{
scanf("%d %d %d",&t,&a,&b);
if(!t)
update(a,-b);
else
printf("%d\n",sum(b) - sum(a-1));
}
}
int main()
{
freopen("datorii.in","rt",stdin);
freopen("datorii.out","wt",stdout);
citire();
solve();
}