Pagini recente » Cod sursa (job #2409211) | Cod sursa (job #2607043) | Cod sursa (job #2219422) | Cod sursa (job #2924683) | 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;
}