Pagini recente » Cod sursa (job #2420488) | Cod sursa (job #2313293) | Cod sursa (job #372136) | Cod sursa (job #2570231) | Cod sursa (job #2190485)
#include <bits/stdc++.h>
using namespace std;
int n,m,t[250000],i,j,sum,M,val,a,b,c,poz;
void update(int nod, int x, int y)
{
if (x==y) {t[nod]+=val; return;}
int mid=(x+y)/2;
if (mid<poz) update(nod*2+1,mid+1,y);
else update(nod*2,x,mid);
t[nod]=t[nod*2]+t[nod*2+1];
}
void suma(int nod, int x, int y)
{
if (x>=a && y<=b) {sum+=t[nod]; return;}
int mid=(x+y)/2;
if (mid<b) suma(nod*2+1,mid+1,y);
if (mid>=a) suma(nod*2,x,mid);
}
int main()
{
ifstream fin("datorii.in");
ofstream fout("datorii.out");
fin>>n>>m;
for (i=1;i<=n;i++)
{
poz=i;
fin>>val;
update(1,1,n);
}
for (i=1;i<=m;i++)
{
fin>>c>>a>>b;
if (c==0)
{
poz=a;
val=-b;
update(1,1,n);
} else
{
sum=0;
suma(1,1,n);
fout<<sum<<"\n";
}
}
return 0;
}