Pagini recente » Cod sursa (job #1527748) | Cod sursa (job #2216741) | Cod sursa (job #2731245) | Cod sursa (job #2948278) | Cod sursa (job #752484)
Cod sursa(job #752484)
#include <cstdio>
#include <cassert>
#define Nmax 15005
#define InFile "datorii.in"
#define OutFile "datorii.out"
using namespace std;
int n, m;
int Aib[Nmax];
void update (int x, int q);
int query (int x);
inline int zeros (int x) {return (x^(x-1))&x;}
void read();
int main()
{
int i, op, a, b;
assert (freopen (InFile, "r", stdin));
assert (freopen (OutFile, "w", stdout));
read();
for (i=1; i<=m; i++)
{
scanf ("%d %d %d\n", &op, &a, &b);
if (op==0)
update (a, -b);
else
printf ("%d\n", query (b)-query (a-1));
}
return 0;
}
void read()
{
int i, a;
scanf ("%d %d\n", &n, &m);
for (i=1; i<=n; i++)
scanf ("%d ", &a), update (i, a);
}
void update (int x, int q)
{
int i;
for (i=x; i<=n; i+=zeros (i))
Aib[i]+=q;
}
int query (int x)
{
int i, Sum=0;
for (i=x; i>0; i-=zeros (i))
Sum+=Aib[i];
return Sum;
}