Pagini recente » Cod sursa (job #747993) | Cod sursa (job #1973162) | Cod sursa (job #2117217) | Cod sursa (job #1982447) | Cod sursa (job #545642)
Cod sursa(job #545642)
#include<stdio.h>
#define nrn 100002
#define zeros(x) ((x^(x-1))&x)
using namespace std;
int AIB[nrn],a,b,n;
FILE *in=fopen("arbint","r"),*out=fopen("arbint","w");
void update(int val,int i)
{
for(;i<=n;i+=zeros(i))
AIB[i]+=val;
}
int sum(int right)
{
int S=0;
for(int i=right;i>0;i-=zeros(i))
S+=AIB[i];
return S;
}
void second()
{
fprintf(out,"%d\n",sum(b)-sum(a-1));
}
int main()
{
int i,m,c;
fscanf(in,"%d %d",&n,&m);
for(i=1;i<=n;i++)
{
fscanf(in,"%d",&c);
update(c,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):second();break;
}
}
return 0;
}