Pagini recente » Cod sursa (job #2191241) | Cod sursa (job #3264827) | Cod sursa (job #2388813) | Cod sursa (job #3199986) | Cod sursa (job #2214457)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("datorii.in");
ofstream fout ("datorii.out");
int v[15002], aib[15002], n, tip, a, b, m;
void Update (int x, int val) {
for (int i = x; i <= n; i += (i & -i))
aib[i] -= val;
}
int query (int x) {
int sum = 0;
for (int i = x; i > 0; i -= (i & -i))
sum += aib[i];
return sum;
}
int main()
{
fin >> n >> m;
for (int i = 1; i <= n; i++) {
fin >> v[i];
Update(i, -v[i]);
}
for (int i = 1; i <= m; i++) {
fin >> tip >> a >> b;
if (tip == 0)
Update(a, b);
if (tip == 1)
fout << query(b) - query(a - 1) << "\n";
}
return 0;
}