Pagini recente » Cod sursa (job #2220579) | Cod sursa (job #3323468) | Cod sursa (job #3268936) | Cod sursa (job #187651) | Cod sursa (job #3041405)
#include <bits/stdc++.h>
#define L long long
using namespace std;
ifstream in("datorii.in");
ofstream out("datorii.out");
int n,m,x,y,ma,a[500005];
bool k;
void u(int nod, int st, int dr, bool op)
{
if(st==dr)
{
if(op==0)
a[nod]=y;
else a[nod]-=y;
return;
}
int m=(st+dr)/2;
if (x<=m)
u(2*nod,st,m,op);
else
u(2*nod+1,m+1,dr,op);
a[nod]=a[2*nod]+a[2*nod+1];
}
void q(int nod, int st, int dr)
{
if (x<=st && dr<=y)
{
ma+=a[nod];
return;
}
int m=(st+dr)/2;
if (x<=m) q(2*nod,st,m);
if (m<y) q(2*nod+1,m+1,dr);
}
int main()
{
in>>n>>m;
for(int i=1; i<=n; ++i)
in>>y,x=i,u(1,1,n,0);
for(int i=1; i<=m; ++i)
{
in>>k>>x>>y;
if(k)
ma=0,q(1,1,n),out<<ma<<'\n';
else
u(1,1,n,1);
}
}