Pagini recente » Cod sursa (job #2840324) | Cod sursa (job #691083) | Cod sursa (job #2044808) | Cod sursa (job #1581087) | Cod sursa (job #1263294)
#include <iostream>
#include <fstream>
#define MAXN 15000
using namespace std;
int aib[MAXN + 1];
int n;
void update(int val, int pos) {
while (pos <= n) {
aib[pos] += val;
pos += (pos & (-pos));
}
}
int query(int pos) {
int res = 0;
while (pos > 0) {
res += aib[pos];
pos -= (pos & (-pos));
}
return res;
}
int main () {
ifstream in("datorii.in");
ofstream out("datorii.out");
int m;
in >> n >> m;
for (int i = 1 ; i <= n ; ++i) {
int a;
in >> a;
update(a, i);
}
for (int i = 0 ; i < m ; ++i) {
int tip;
in >> tip;
if (tip == 0) {
int t, v;
in >> t >> v;
update(-v, t);
}
else {
int p, q;
in >> p >> q;
out << query(q) - query(p - 1) << "\n";
}
}
return 0;
}