Pagini recente » Cod sursa (job #1146281) | Cod sursa (job #3244238) | Cod sursa (job #222520) | Cod sursa (job #260814) | Cod sursa (job #1854641)
#include <bits/stdc++.h>
#define step(x) (x&(-x))
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
const int nmax=15005;
int arb[nmax],n,m;
void update (int poz , int val)
{
int h;
for (h=poz;h<=n;h+=step(h))
arb[h]+=val;
}
int query (int poz)
{
int h,sum=0;
for (h=poz;h>=1;h-=step(h))
sum+=arb[h];
return sum;
}
int main()
{
int op,i,valoare,pozitie,stanga,dreapta;
f>>n>>m;
for (i=1;i<=n;i++)
{
f>>valoare;
update(i,valoare);
}
for (i=1;i<=m;i++)
{
f>>op;
if (op==0)
{
f>>pozitie>>valoare;
valoare*=-1;
update(pozitie,valoare);
}
if (op==1)
{
f>>stanga>>dreapta;
g<<query(dreapta)-query(stanga-1)<<'\n';
}
}
return 0;
}