Pagini recente » Cod sursa (job #2175912) | Cod sursa (job #1857485) | Cod sursa (job #1484465) | Probleme de Taietura | Cod sursa (job #1023990)
#include <cstdio>
#include <cstdlib>
#define putere(x) ((x^(x-1))&x)
using namespace std;
int v[15010],n,m,i,x,y,a;
void operatie1(int i,int x)
{
for(;i<=n;i+=putere(i))
{
v[i]-=x;
}
}
int operatie2(int i)
{
int s=0;
for(;i;i-=putere(i))
{
s+=v[i];
}
return s;
}
int main()
{
freopen("datorii.in", "r", stdin);
freopen("datorii.out", "w", stdout);
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
{
scanf("%d",&x);
operatie1(i,-x);
}
for(i=1;i<=m;i++)
{
scanf("%d%d%d",&a,&x,&y);
if(a)
{
printf("%d\n",operatie2(y)-operatie2(x-1));
}
else
{
operatie1(x,y);
}
}
fclose(stdin);fclose(stdout);
return 0;
}