Pagini recente » Cod sursa (job #212110) | Cod sursa (job #468495) | Cod sursa (job #2073602) | Cod sursa (job #1315982) | Cod sursa (job #3326983)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int n,m,v[100001],aib[1000001];
void update(int poz,int val){
for(int i = poz; i<=n; i+=(i&-i))
aib[i]+=val;
}
int query(int poz){
int suma = 0;
for(int i = poz; i>=1; i-=(i&-i))
suma+=aib[i];
return suma;
}
int main(){
fin>>n>>m;
for(int i = 1; i<=n; i++){
fin>>v[i];
update(i,v[i]);
}
while(m--){
int op; fin>>op;
if(op == 0){
int val,zi;
fin>>zi>>val; //din ziua zi scad val
update(zi,-val);
} else{
int st,dr;
fin>>st>>dr;
fout<<query(dr)-query(st-1)<<'\n';
}
}
return 0;
}