Pagini recente » Cod sursa (job #2920382) | Cod sursa (job #671031) | Cod sursa (job #1096949) | Cod sursa (job #48262) | Cod sursa (job #93837)
Cod sursa(job #93837)
#include <stdio.h>
int c[15000],a[15000],n;
long m;
void push(int k,int x)
{
while (k<=m)
{
c[k] -= x;
k=k+((k^(k-1))&k);
}
}
long suma(int k)
{
int rez=0;
while (k>0)
{
rez+=c[k];
k=k-((k^(k-1))&k);
}
return rez;
}
void citire()
{
freopen("datorii.in","r",stdin);
scanf("%d%d",&m,&n);
for (int i=1;i<=m;i++)
{
int z;
scanf("%d",&z);
push(i,-1*z);
}
for(int i=0;i<n;i++)
{
int x,y,z;
scanf("%d%d%d",&x,&y,&z);
switch (x)
{
case 0: push (y,z); break;
case 1: printf("%ld\n",suma(z)-suma(y-1)); break;
}
}
fclose(stdin);
}
int main()
{
freopen("datorii.out","w",stdout);
citire();
fclose(stdout);
return 0;
}