Pagini recente » Cod sursa (job #1305861) | Cod sursa (job #1886006) | Cod sursa (job #210590) | Cod sursa (job #915535) | Cod sursa (job #1778521)
#include <cstdio>
int n, aib[100005];
using namespace std;
void update( int p, int val )
{
for( ; p<=n; p+=p&-p )
aib[p]+=val;
}
int query( int p )
{
int s=0;
for( ; p>0; p-=p&-p )
s=s+aib[p];
return s;
}
int main()
{
freopen( "datorii.in", "r", stdin );
freopen( "datorii.out", "w", stdout );
int m, i, k, op, a, b;
scanf( "%d%d", &n, &m );
for( i=1;i<=n;i++ )
{
scanf( "%d", &k );
update(i,k);
}
for( i=1;i<=m;i++ )
{
scanf( "%d%d%d", &op, &a, &b );
switch( op )
{
case 0:
update(a,-b);
break;
case 1:
printf( "%d\n", query(b)-query(a-1) );
}
}
return 0;
}