Pagini recente » Cod sursa (job #1139030) | Cod sursa (job #1736801) | Cod sursa (job #1551560) | Cod sursa (job #2030076) | Cod sursa (job #328401)
Cod sursa(job #328401)
#include<fstream>
#define bit(x) ((x^(x-1))&x)
#define MaxN 15005
#define MaxM 100005
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int arb[MaxN],n,m;
void add(int x, int v)//arb[x]+=v
{ for(;x<=n;x+=bit(x)) arb[x]+=v;}
int query(int x)//sum 1->x
{ int s=0;
for(;x;x-=bit(x)) s+=arb[x];
return s;
}
int main()
{ int i,val,op,a,b;
fin>>n>>m;
for(i=1;i<=n;i++)
{ fin>>val;
add(i,val);
}
for(i=1;i<=m;i++)
{ fin>>op;
if(op==0)
{ fin>>a>>b;
add(a,-b);
}
if(op==1)
{ fin>>a>>b;
fout<<query(b)-query(a-1)<<'\n';
}
}
return 0;
}