Pagini recente » Cod sursa (job #895136) | Cod sursa (job #3169093) | Cod sursa (job #2705981) | Cod sursa (job #2699538) | Cod sursa (job #2786499)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("datorii.in");
ofstream fout ("datorii.out");
int aib[15005];
int n, x;
int q, tip, zi1, zi2, val;
int lsb(int k){return (k&(-k));}
void update(int nod, int val){
while(nod <= n){
aib[nod] += val;
nod += lsb(nod);
}
}
int suma(int nod){
int sol=0;
while(nod > 0){
sol += aib[nod];
nod -= lsb(nod);
}
return sol;
}
int main (){
fin>>n>>q;
for(int i=1; i <= n; i++){
fin>>x;
update(i, x);
}
for(int query=1; query <= q; query++){
fin>>tip;
if(tip == 0){
fin>>zi1>>val;
update(zi1, -val);
}else{
fin>>zi1>>zi2;
fout<<suma(zi2) - suma(zi1-1)<<"\n";
}
}
return 0;
}