Pagini recente » Cod sursa (job #1644007) | Cod sursa (job #966310) | Cod sursa (job #638101) | Cod sursa (job #1523374) | Cod sursa (job #1155157)
#include <iostream>
#include <fstream>
using namespace std;
#define maxn 15010
int lsb(int nr)
{
return ((nr)&(-nr));
}
int aib[maxn];
int n;
void update(int pos,int val)
{
for (int i=pos;i<=n;i+=lsb(i))
aib[i]+=val;
}
int v[maxn];
int query(int pos)
{
int val=0;
for (int i=pos;i>0;i-=lsb(i))
val+=aib[i];
return val;
}
int m,i,q,t,val,p;
int main(void)
{
FILE * f;
f=fopen("datorii.in","r");
ofstream g("datorii.out");
fscanf(f,"%d%d",&n,&m);
for (i=1;i<=n;i++)
{
fscanf(f,"%d",&v[i]);
update(i,v[i]);
}
for (i=1;i<=m;i++)
{
fscanf(f,"%d",&q);
if (q==0)
{
fscanf(f,"%d%d",&t,&val);
update(t,-val);
}
if (q==1)
{
fscanf(f,"%d%d",&p,&q);
g<<query(q)-query(p-1)<<'\n';
}
}
g.close();
return 0;
}