Pagini recente » Cod sursa (job #1606366) | Cod sursa (job #1270737) | Cod sursa (job #2419898) | Statistici Andrei Stanescu (Domanitos) | Cod sursa (job #1261290)
#include <cstdio>
using namespace std;
int aib[15001] ;
int n ;
void update(int poz,int valoare)
{
for(; poz<=n; poz+=poz&(poz-1)^poz)
{
aib[poz]+=valoare;
}
}
int query(int poz)
{
int s;
s=0;
for(; poz; poz-=poz&(poz-1)^poz)
{
s+=aib[poz];
}
return s;
}
int main()
{
freopen ( "datorii.in","r",stdin ) ;
freopen ( "datorii.out","w",stdout ) ;
int m, d, lp, i, op, a, b ;
scanf ( "%d%d",&n,&m ) ;
for ( i = 1 ; i <= n ; i ++ )
{
scanf ( "%d",&d ) ;
update ( i, d ) ;
}
for ( i = 1 ; i <= m ; i ++ )
{
scanf ( "%d%d%d",&op,&a,&b ) ;
if ( op == 0 )
update ( a, -b ) ;
else
printf ( "%d\n",query ( b ) - query ( a-1 ) ) ;
}
return 0;
}