Pagini recente » Cod sursa (job #1435213) | Cod sursa (job #3030139) | Cod sursa (job #2548349) | Cod sursa (job #1536642) | Cod sursa (job #2183204)
#include <cstdio>
using namespace std;
int aib[15005] , n;
void update(int poz , int val , int sign)
{
for( ; poz <= n ; poz = poz + (poz&-poz))
aib[poz] = aib[poz] + val * sign;
}
int query(int poz)
{
int s = 0;
for( ; poz > 0 ; poz = poz - (poz&-poz))
s = s + aib[poz];
return s;
}
int main()
{
freopen("datorii.in" , "r" , stdin);
freopen("datorii.out" , "w" , stdout);
int m , i , op , a , b , x , sign;
scanf("%d%d" , &n , &m);
sign = 1;
for(i = 1 ; i <= n ; i ++)
{
scanf("%d" , &x);
update(i , x , sign);
}
sign = -1;
for(i = 1 ; i <= m ; i ++)
{
scanf("%d%d%d" , &op , &a , &b);
if(op == 0)
update(a , b , sign);
else
printf("%d\n" , query(b) - query(a - 1));
}
return 0;
}