Pagini recente » Cod sursa (job #421907) | Cod sursa (job #1327569) | Cod sursa (job #2015290) | Cod sursa (job #665682) | Cod sursa (job #1206883)
#include <cstdio>
using namespace std ;
const int NMAX = 15002 ;
int aib[NMAX] , n ;
inline void update (int poz , int val )
{
for( ; poz <= n ; poz += poz &- poz )
aib[poz] += val ;
}
inline int query ( int poz )
{
int s = 0 ;
for( ; poz ; poz -= poz &- poz )
s += aib[poz] ;
return s ;
}
int main ()
{
freopen( "datorii.in" , "r" , stdin ) ;
freopen( "datorii.out" , "w" , stdout ) ;
int m , val , t , x , y ;
scanf( "%d%d" , &n , &m ) ;
for( int i = 1 ; i <= n ; i ++ )
{
scanf("%d" , & val ) ;
update( i , val ) ;
}
for( int i = 1 ; i <= m ; i ++ )
{
scanf("%d%d%d" , &t , &x , &y ) ;
if ( t == 0 )
update( x , -y ) ;
else
printf("%d\n" , query (y) - query (x-1) ) ;
}
return 0 ;
}