Pagini recente » Cod sursa (job #2926418) | Cod sursa (job #1144635) | Cod sursa (job #1742072) | Monitorul de evaluare | Cod sursa (job #499375)
Cod sursa(job #499375)
# include <cstdio>
const char *FIN = "datorii.in", *FOU = "datorii.out" ;
const int MAX = 15005 ;
int Sum[MAX] ;
int N, M ;
int main ( void ) {
freopen ( FIN, "r", stdin ) ;
freopen ( FOU, "w", stdout ) ;
scanf ( "%d %d", &N, &M ) ;
for ( int i = 1, a, b; i <= N; ++i ) {
scanf ( "%d", &a ) ;
for ( b = i; b <= N; Sum[b] += a, b += b & -b ) ;
}
for ( int a, b, tip ; M ; --M ) {
scanf ( "%d %d %d", &tip, &a, &b ) ;
if ( tip ) {
int sol = 0 ;
for ( ; b > 0 ; sol += Sum[b], b -= b & -b ) ;
for ( --a ; a > 0 ; sol -= Sum[a], a -= a & -a ) ;
printf ( "%d\n", sol ) ;
} else {
for ( ; a <= N; Sum[a] -= b, a += a & -a ) ;
}
}
}