Pagini recente » Cod sursa (job #2083200) | Cod sursa (job #1703917) | Cod sursa (job #1052346) | Cod sursa (job #2120164) | Cod sursa (job #982285)
Cod sursa(job #982285)
#include <fstream>
#include <cstdio>
using namespace std;
const char infile [] = "datorii.in";
const char outfile[] = "datorii.out";
int aib[15001],n,m,x,y;
bool op;
void update (int i, int val)
{
int lowest_bit;
while (i<=n)
{
aib[i] += val;
lowest_bit = i&(-i);
i += lowest_bit;
}
}
int query (int i)
{
int lowest_bit,s=0;
while (i>0)
{
s+=aib[i];
lowest_bit = i&(-i);
i -= lowest_bit;
}
return s;
}
int main()
{
freopen (infile,"r",stdin);
freopen (outfile,"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", &op);
if (!op)
{
scanf ("%d %d", &x, &y);
update (x,-y);
}
else
{
scanf ("%d %d", &x, &y);
printf ("%d\n",(query(y)-query(x-1)));
}
}
}