Pagini recente » Cod sursa (job #530125) | Cod sursa (job #47808) | Cod sursa (job #1615096) | Cod sursa (job #305517) | Cod sursa (job #334781)
Cod sursa(job #334781)
#include<cstdio>
#define MAXN ( 1 << 14 )
int i , j , N , M , a, b, type , X , Tree[MAXN] ;
int LSB ( int A ) {
return ( A & ( A - 1 ) ^ A ) ;
}
void update ( int poz , int value ) {
for( ; poz <= N ; poz += LSB ( poz ) ) Tree[poz] += value;
}
int query ( int poz ) {
int Result = 0;
for ( ; poz > 0 ; poz -= LSB( poz ) ) Result += Tree[poz];
return Result;
}
int main ()
{
freopen("datorii.in","r",stdin);
freopen("datorii.out","w",stdout);
scanf("%d %d",&N ,&M) ;
for ( i = 1 ; i <= N ; ++i ) {
scanf("%d",&X);
update ( i , X ) ;
}
for( ; M -- ; ) {
scanf("%d %d %d ",&type ,& a ,& b) ;
if ( type == 0 ) update ( a , -b ) ;
else printf("%d\n",query ( b ) - query ( a - 1 ) ) ;
}
return 0;
}