Pagini recente » Cod sursa (job #1131179) | Cod sursa (job #1913360) | Cod sursa (job #2519705) | Cod sursa (job #2570043) | Cod sursa (job #1896652)
#include <fstream>
#include <iostream>
#define maxs 15005
#define zeros(x) ( (x ^ (x - 1)) & x )
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
int AIB[maxs], v, n, m;
void Add(int x, int quantity){
int i;
for (i = x; i <= n; i += zeros(i))
AIB[i] += quantity;
}
int Compute(int x){
int i, ret = 0;
for (i = x; i > 0; i -= zeros(i))
ret += AIB[i];
return ret;
}
int main(){
f >> n >> m;
for(int i = 1; i <= n; ++i){
f >> v, Add(i, v);
}
for(int i = 1; i <= m; ++i){
int k, x, y;
f >> k >> x >> y;
if(k){
g << Compute(y) - Compute(x-1) << '\n';
}
else Add(x, -y);
}
}