Pagini recente » Cod sursa (job #2049208) | Cod sursa (job #2136806) | Cod sursa (job #2294278) | Cod sursa (job #645827) | Cod sursa (job #2497716)
#include <bits/stdc++.h>
#define Nmax 15005
#define zeros(x) (x^(x-1))&x
using namespace std;
int n, m, aib[Nmax], v[Nmax];
ifstream f("datorii.in");
ofstream g("datorii.out");
void read()
{
f >> n >> m;
for (int i = 1; i <= n; ++i)
f >> v[i];
}
void add(int x, int val)
{
do {
aib[x] += val;
x += x & (-x);
} while(x <= n + 1);
}
int sum(int x)
{
int s = 0;
while (x) {
s += aib[x];
x -= x & (-x);
}
return s;
}
int show(int x, int y)
{
return sum(y) - sum(x - 1);
}
void solve()
{
int c, x, y;
for (int i = 1; i <= m; ++i) {
f >> c >> x >> y;
if (c == 0)
add(x, -y);
else
g << show(x, y) << "\n";
}
}
void init_aib()
{
for (int i = 1; i <= n; ++i)
add(i, v[i]);
}
int main()
{
read();
init_aib();
solve();
return 0;
}