Pagini recente » Cod sursa (job #3272429) | Cod sursa (job #2900026) | Cod sursa (job #1835662) | Cod sursa (job #2659979) | Cod sursa (job #1969386)
#include <fstream>
#define zerouri(x) ((x^(x-1))&x)
#define NMax 15005
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
int N, M, i, x, a, b, tip, v[NMax];
void Update (int x, int val, int tip)
{
for(int i=x; i<=N; i+=zerouri(i))
if(tip==1)
v[i]+=val;
else v[i]-=val;
}
int Query(int x)
{
int ans=0;
for(int i=x; i>0; i-=zerouri(i))
ans+=v[i];
return ans;
}
int main()
{
f>>N>>M;
for(i=1; i<=N; i++)
{
f>>x;
Update(i,x,1);
}
for(i=1; i<=M; i++)
{
f>>tip>>a>>b;
if(tip==0) Update(a,b,2);
else g<<Query(b)-Query(a-1)<<'\n';
}
return 0;
}