Pagini recente » Cod sursa (job #2719316) | Cod sursa (job #349341) | Cod sursa (job #1945676) | Cod sursa (job #295365) | Cod sursa (job #2271797)
#include <bits/stdc++.h>
using namespace std;
#define MAXN 15000
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int aib[MAXN + 20];
int zeros(int x){
return x & (-x);
}
void update(int n , int day, int value){
for(int i = day; i <= n; i += zeros(i))
aib[i] += value;
}
int query(int position){
int s = 0;
for(int i = position; i > 0; i -= zeros(i))
s += aib[i];
return s;
}
int main(){
int n, m, x;
bool type;
fin >> n >> m;
for(int i = 1; i <= n; ++i){
fin >> x;
update(n ,i, x);
}
for(int i = 1; i <= m; ++i){
fin >> type;
if(!type){
int value, day;
fin >> day >> value;
update(n, day, -value);
}
else{
int left, right;
fin >> left >> right;
fout << query(right) - query(left - 1) << '\n';
}
}
return 0;
}