Pagini recente » Cod sursa (job #917502) | Cod sursa (job #1540364) | Cod sursa (job #1746061) | Cod sursa (job #857241) | Cod sursa (job #1224405)
#include <fstream>
#include <iostream>
using namespace std;
#define nmax 15001
ifstream in("datorii.in");
ofstream out("datorii.out");
int n,m;
int S[nmax];
int i,x,tip,t,v,p,q;
void update(int p, int x) {
while (p <= n){
S[p] += x;
p += (p^(p-1)) & p;
}
}
int query(int p) {
int s = 0;
while (p > 0) {
s += S[p];
p -= (p^(p-1)) & p;
}
return s;
}
int main() {
in >> n >> m;
for (i = 1; i <= n; i++){
in >> x,
update(i, x);
}
for (i = 1; i <= m; i++) {
in >> tip;
if (tip == 0) {
in >> t >> v;
update(t, -v);
} else {
in >> p >> q;
out << query(q) - query(p-1) << "\n";
}
}
return 0;
}