Pagini recente » Cod sursa (job #2761345) | Cod sursa (job #1583211) | Cod sursa (job #2053216) | Cod sursa (job #2136165) | Cod sursa (job #112881)
Cod sursa(job #112881)
#include <fstream.h>
#define NMAX 15001
int v[NMAX],n;
long m;
void adun(int ind,int val)
{ int poz=0;
while (ind<=n)
{ v[ind]=v[ind]+val;
while ((ind&(1<<poz))==0)
poz++;
ind=ind+(1<<poz);
}
}
long suma(int x)
{ int poz=0;
long s=0;
while (x>0)
{ s=s+v[x];
while ((x&(1<<poz))==0)
poz++;
x=x-(1<<poz);
}
return s;
}
int main()
{ long i;
int c,x,y;
ifstream f("datorii.in");
ofstream g("datorii.out");
f>>n>>m;
for (i=1;i<=n;i++) { f>>x;adun(i,x);}
for (i=1;i<=m;i++)
{ f>>c;
if (c==0)
{ f>>x>>y;
adun(x,-y);
}
else
{ f>>x>>y;
g<<suma(y)-suma(x-1)<<'\n';
}
}
f.close();
g.close();
return 0;
}