Pagini recente » Cod sursa (job #2825887) | Cod sursa (job #1393823) | Cod sursa (job #1031903) | Cod sursa (job #300756) | Cod sursa (job #2410496)
#include <iostream>
#include <fstream>
#define NMAX 15001
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
int n, m, aib[NMAX];
void adauga(int val, int k)
{
int i;
for(i=k; i<=n; i+=((i ^ (i - 1)) & i))
aib[i] += val;
}
int suma(int k)
{
int i, s = 0;
for (i=k; i>=1; i-=((i ^ (i - 1)) & i))
s += aib[i];
return s;
}
int main() {
int i, op, x, y;
f >> n >> m;
for (i=1; i<=n; ++i){
f >> x;
adauga(x, i);
}
for (i=1; i<=m; ++i) {
f >> op >> x >> y;
if (!op) adauga(-y, x);
else g << suma(y) - suma(x - 1) << '\n';
}
return 0;
}