Pagini recente » Cod sursa (job #2222879) | Cod sursa (job #166574) | Cod sursa (job #2785779) | Cod sursa (job #2841981) | Cod sursa (job #1760417)
#include <fstream>
#include <algorithm>
using namespace std;
#define LSB(x) ((x) & -(x))
#define Nmax 100002
ifstream fin( "datorii.in" );
ofstream fout( "datorii.out" );
int N, AIB[Nmax];
inline void AddVal( int pos, int val ){
for( int i = pos; i <= N; i += LSB(i) )
AIB[i] += val;
}
inline int Sum( int pos ){
int res = 0;
for( int i = pos; i > 0; i -= LSB(i) )
res += AIB[i];
return res;
}
inline int Query( int x, int y ){
return Sum(y) - Sum(x-1);
}
int main(){
int M, t, x, y;
fin >> N >> M;
for( int i = 1; i <= N; ++i ){
fin >> x;
AddVal( i, x );
}
while( M-- ){
fin >> t >> x >> y;
if( t == 0 )
AddVal( x, -y );
else
fout << Query( x, y ) << '\n';
}
return 0;
}