Pagini recente » Cod sursa (job #2747841) | Cod sursa (job #3272521) | Cod sursa (job #1366767) | Cod sursa (job #1317421) | Cod sursa (job #488381)
Cod sursa(job #488381)
#include<stdio.h>
int n,m,aib[15001];
int bit(int x)
{
return (x&(x-1))^x;
}
void update(int a,int b)
{
for(;a<=n;a+=bit(a))
aib[a]+=b;
}
int querry(int x)
{
int s = 0;
for(;x>=1;x-=bit(x))
s += aib[x];
return s;
}
int main()
{
FILE*f = fopen("datorii.in","r");
FILE*g = fopen("datorii.out","w");
fscanf(f,"%d %d",&n,&m);
int i,a,b,var;
for(i=1;i<=n;++i)
{
fscanf(f,"%d ",&var);
update(i,var);
}
while(m--)
{
fscanf(f,"%d %d %d",&var,&a,&b);
if(var)
{
fprintf(g,"%d\n",querry(b)-querry(a-1));
}
else
{
update(a, -b);
}
}
fclose(g);
fclose(f);
return 0;
}