Pagini recente » Cod sursa (job #1158879) | simoni-11-12 | Cod sursa (job #1120331) | Istoria paginii runda/luca_oji4/clasament | Cod sursa (job #71291)
Cod sursa(job #71291)
//(c) author Mircea Dima
// Arbori Indexati Binar
// datorii.cpp
#include <stdio.h>
#define maxn 15001
#define bit(x) ( (x) & (((x)-1)^x))
int s[maxn], m, n;
void update(int x, int val, int sgn)
{
for(; x<=n ;x+=bit(x)) s[x]+=sgn*val;
}
int query(int x)
{
int sum=0;
for(; x>0 ;x-=bit(x))sum+=s[x];
return sum;
}
void citire()
{
int i;
freopen("datorii.in", "r", stdin);
freopen("datorii.out", "w", stdout);
scanf("%d %d\n", &n, &m);
for(i=1;i<=n;i++)
{
int x;
scanf("%d ", &x);
update(i, x, 1);
}
for(i=1;i<=m;i++)
{
int p, q, t;
scanf("%d %d %d\n", &p, &q, &t);
if(p==0) update(q, t, -1);
else printf("%d\n", query(t)-query(q-1));
}
}
int main()
{
citire();
return 0;
}