Pagini recente » Cod sursa (job #1936157) | Cod sursa (job #1640308) | Cod sursa (job #2687900) | Cod sursa (job #1875845) | Cod sursa (job #3038628)
#include <bits/stdc++.h>
using ll=long long;
#define S second
#define F first
#define endl '\n'
#define spid ios_base::sync_with_stdio(false);cin.tie(NULL);
const int mod=1e9+7;
const double pi=3.14159265359;
const int maxn=200001;
using namespace std;
int n,m,A[maxn],T[maxn];
int up(int i){
return i-(i&(-i));
}
int down(int i){
return i+(i&(-i));
}
int qr(int l,int r){
int sum1=0,sum2=0;
while(l){
sum1+=T[l];
l=up(l);
}
while(r){
sum2+=T[r];
r=up(r);
}
return sum2-sum1;
}
void upd2(int x,int delta){
if(x>n)return;
T[x]-=delta;
upd2(down(x),delta);
}
int main(){
ifstream cin("datorii.in");
ofstream cout("datorii.out");
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>A[i];
T[i]=A[i];
}
for(int i=1;i<=n;i++){
int j=down(i);
T[j]+=T[i];
}
while(m--){
int c,x,y;
cin>>c>>x>>y;
if(c==0){
upd2(x,y);
}
else{
cout<<qr(x-1,y)<<endl;
}
}
}