Pagini recente » Cod sursa (job #2242754) | Cod sursa (job #550232) | Cod sursa (job #857123) | Cod sursa (job #1137750) | Cod sursa (job #549052)
Cod sursa(job #549052)
#include<stdio.h>
#define nrn 15002
#define zzz(x) ((x^(x-1))&x)
using namespace std;
FILE *in=fopen("datorii.in","r"),*out=fopen("datorii.out","w");
int n,aib[nrn];
long long S;
void update(int val,int ind)
{
for(ind=ind;ind<=n;ind+=(zzz(ind)))
{
aib[ind]+=val;
}
}
long long suma(int ind)
{
S=0;
for(ind=ind;ind>0;ind-=(zzz(ind)))
{
S+=aib[ind];
}
return S;
}
int main()
{
int a,b,i,c,x,m;
fscanf(in,"%d %d",&n,&m);
for(i=1;i<=n;i++)
{
fscanf(in,"%d",&x);
update(x,i);
}
for(i=1;i<=m;++i)
{
fscanf(in,"%d %d %d",&c,&a,&b);
switch(c)
{
case(0):update(-b,a);break;
case(1):fprintf(out,"%lld\n",suma(b)-suma(a-1));break;
}
}
return 0;
}