Pagini recente » Cod sursa (job #2781670) | Cod sursa (job #2608820) | Cod sursa (job #1404256) | Cod sursa (job #2699837) | Cod sursa (job #1850240)
#include <iostream>
#include <fstream>
#include <cmath>
//#include <vector>
//#include <set>
#include <algorithm>
//#include <map>
//#include <cstring>
//#include <string>
//#include <queue>
#define mp make_pair
#define pb push_back
#define ff(i, x, n) for (int i = x; i <= n; ++i)
#define dd cout <<
#define nn << '\n'
#define ss << ' ' <<
#define z(x) ((x ^ (x - 1)) & x)
using namespace std;
int n, m, aib[15005];
void update(int x, int val) {
do {
aib[x] += val;
x += z(x);
} while (x <= n);
}
int ask(int x) {
int r = 0;
do {
r += aib[x];
x -= z(x);
} while (x);
return r;
}
int main(){
//freopen("schi.in", "r", stdin);
//freopen("schi.out", "w", stdout);
ifstream in("datorii.in");
ofstream out("datorii.out");
int val, a, b, q;
in >> n >> m;
ff(i, 1, n) {
in >> val;
update(i, val);
}
ff(i, 1, m) {
in >> q >> a >> b;
if (q) {
out << ask(b) - ask(a - 1) << '\n';
} else {
update(a, -b);
}
}
}