Pagini recente » Cod sursa (job #1899870) | Cod sursa (job #96065) | Cod sursa (job #2530255) | Cod sursa (job #1323436) | Cod sursa (job #2928475)
#include <bits/stdc++.h>
using namespace std;
int aib[100001],n;
int query(int p){
int suma = 0;
for(int i = p;i>=1;i-=(i&-i)){
suma += aib[i];
}
return suma;
}
void update1(int p, int x){
for(int i = p;i<=n;i+=(i&-i)){
aib[i] -=x;
}
}
void update(int p, int x){
for(int i = p;i<=n;i+=(i&-i)){
aib[i] +=x;
}
}
int main(void){
ofstream cout("datorii.out");
ifstream cin("datorii.in");
int m,x;
cin >> n >> m;
cin.ignore();
for(int i = 1;i<=n;i++){
cin >> x;
update(i,x);
}
for(int i = 1;i<=m;i++){
int c;
cin >> c;
if(c == 0){
int p;
cin >> p >> x;
update1(p,x);
}else if(c == 1){
int p1,p2;
cin >> p1 >> p2;
cout << query(p2) - query(p1-1) << '\n';
}
}
}