Pagini recente » Cod sursa (job #1067276) | Cod sursa (job #540667) | Cod sursa (job #536789) | Cod sursa (job #2911021) | Cod sursa (job #911278)
Cod sursa(job #911278)
#include<cstdio>
#define MAX_SIZE 100005
using namespace std;
int S[MAX_SIZE],N,M;
int x,tip,a,b;
void update( int poz ,int val )
{
for(int i=poz; i <= N; i+=i&(-i))
S[i]+=val;
}
int query ( int val)
{
int result=0;
for(int i= val ; i ; i-=i&(-i) )
result+=S[i];
return result;
}
int update1( int poz , int val)
{
for(int i=poz; i <= N; i+=i&(-i))
S[i]-=val;
}
int main( void )
{
freopen("datorii.in","r",stdin);
freopen("datorii.out","w",stdout);
scanf("%d%d",&N,&M);
for(int i(1); i <= N ; ++i)
{
scanf("%d",&x);
update(i,x);
}
for(int i(1); i <= M ; ++i)
{
scanf("%d",&tip);
if( tip == 0 )
{
scanf("%d%d",&a,&b);
update1(a,b);
continue;
}
if( tip == 1)
{
scanf("%d%d",&a,&b);
printf("%d\n",query(b)-query(a-1));
continue;
}
}
return 0;
}