Pagini recente » Cod sursa (job #2035214) | Cod sursa (job #1477429) | Cod sursa (job #2989185) | Cod sursa (job #2360778) | Cod sursa (job #1356822)
#include <stdio.h>
#define zero(x) (x^(x-1))&x
using namespace std;
int n,m,i,a,AIB[15001],t,x,y;
void update(int x,int y)
{
for (int i=y;i<=n;i+=zero(i))
AIB[i]+=x;
}
int calc(int x)
{
int r=0;
for (int i=x;i>0;i-=zero(i))
r+=AIB[i];
return r;
}
int det(int x,int y)
{
return calc(y)-calc(x-1);
}
int main()
{
freopen ("datorii.in","r",stdin);
freopen ("datorii.out","w",stdout);
scanf("%i%i",&n,&m);
for (i=1;i<=n;i++)
{
scanf("%i",&a);
update(a,i);
}
for (i=1;i<=m;i++)
{
scanf("%i%i%i",&t,&x,&y);
if (t==0) update(-y,x);
else printf("%i\n",det(x,y));
}
fclose(stdin);
fclose(stdout);
return 0;
}