Pagini recente » Cod sursa (job #1486370) | Cod sursa (job #102199) | Cod sursa (job #2823) | Cod sursa (job #3141109) | Cod sursa (job #1512919)
#include <fstream>
using namespace std;
const int NMAX= 15000;
ifstream in( "datorii.in" );
ofstream out( "datorii.out" );
int v[NMAX+1], aib[NMAX+1], N;
void upd( int poz, int nr )
{
for( int i= poz; i<=N; i+= i-(i&(i-1)) )
{
aib[i]+= nr;
}
}
int query( int pos )
{
int s= 0;
for( int i= pos; i>=1; i-= i-(i&(i-1)) )
{
s+= aib[i];
}
return s;
}
int main( )
{
int M;
in >> N >> M;
for( int i= 1; i<=N; ++i )
{
in >> v[i];
upd( i, v[i] );
}
for( int i= 1; i<=M; ++i )
{
int a, b, c;
in >> a >> b >> c;
if( a==0 )
{
upd( b, -c );
}
else
{
out << query( max( b, c ) )-query( min( b, c )-1 ) << '\n';
}
}
return 0;
}