Pagini recente » Cod sursa (job #2428699) | Cod sursa (job #2276733) | Cod sursa (job #2297633) | Cod sursa (job #540431) | Cod sursa (job #2494348)
#include <fstream>
using namespace std;
ifstream cin("datorii.in");
ofstream cout("datorii.out");
int v[32768], i, n, m, s, d, x, poz, k, sum;
void update(int nod, int st, int dr)
{ if (st==dr) v[nod]+=x;
else
{ int m=(st+dr)/2;
if (poz<m) update(2*nod, st, m);
else update(2*nod+1, m+1, dr);
v[nod]=v[2*nod]+v[2*nod+1];
}
}
void querry(int nod, int st, int dr)
{ if (s<=st && dr<=d) sum+=v[nod];
else
{ int m=(st+dr)/2;
if (s<=m) querry(2*nod, st, m);
if (d>m) querry(2*nod+1, m+1, dr);
}
}
int main()
{ cin>>n>>m;
for (i=1; i<=n; ++i)
{ cin>>x;
poz=i;
update(1, 1, n);
}
for (i=1; i<=m; ++i)
{ cin>>k;
if (k==0)
{ cin>>poz>>x;
x=-x;
update(1, 1, n);
}
else
{ cin>>s>>d;
sum=0;
querry(1, 1, n);
cout<<sum<<'\n';
}
}
return 0;
}