Pagini recente » Cod sursa (job #2149966) | Cod sursa (job #283963) | Cod sursa (job #2870091) | Cod sursa (job #2474928) | Cod sursa (job #1684485)
#include <bits/stdc++.h>
using namespace std;
ifstream in("datorii.in");
ofstream out("datorii.out");
#define Nmax 400000
int v[Nmax],n,m,pos,a,b,s,start,finish,x,val;
void Update(int nod, int l, int r){
if(l == r ){
v[nod]+=val;
}
else{
int mij=(l + r)/2;
if(pos <= mij) Update(2*nod,l,mij);
else Update(2*nod + 1,mij+1,r);
v[ nod ] = v[ 2 * nod ] + v[ 2 * nod + 1 ];
}
}
void Querry(int nod, int l, int r){
if(a <= l && b >= r){
s+=v[nod];
}
else{
int mij=(l + r)/2;
if(a <= mij) Querry(2*nod,l,mij);
if(b > mij) Querry(2*nod +1,mij+1,r);
}
}
int main(){
in>>n>>m;
for(int i=1;i<=n;i++){
in>>val;
pos=i;
Update(1,1,n);
}
for(int i=1;i<=m;i++){
in>>x>>a>>b;
if(x == 1){
s=0;
Querry(1,1,n);
out<<s<<'\n';
}
else{
pos=a;
val=-b;
Update(1,1,n);
}
}
return 0;
}