Pagini recente » Cod sursa (job #2471137) | Cod sursa (job #886147) | Cod sursa (job #2934405) | Cod sursa (job #2977101) | Cod sursa (job #1210527)
#include <iostream>
#include <fstream>
using namespace std;
#define nmax 15001
ifstream in("datorii.in");
ofstream out("datorii.out");
int n,m,i,t,v,p,q;
bool tip;
int A[nmax],S[nmax];
void achitare(int t, int v) {
while (t <= n) {
S[t] += v;
t += (t^(t-1))&t;
}
}
int interogare(int p) {
int sum = 0;
while (p > 0) {
sum += S[p];
p -= (p^(p-1))&p;
}
return sum;
}
int main() {
in >> n >> m;
for (i=1; i<=n; i++)
in >> A[i],
achitare(i, A[i]);
for (i=1; i<=m; i++) {
in >> tip;
if (tip) {
// interogare
in >> p >> q;
out << interogare(q) - interogare(p-1) << "\n";
} else {
// achitare
in >> t >> v;
achitare(t, -v);
}
}
return 0;
}