Pagini recente » Cod sursa (job #1331946) | Cod sursa (job #2076235) | Cod sursa (job #2570940) | Cod sursa (job #1424840) | Cod sursa (job #1521292)
#include <cstdio>
#include <algorithm>
#include <vector>
using namespace std;
int aib[15010], n;
inline void add (int x, int val)
{
for (int i = x; i <= n; i += i & (-i))
aib[i] -= val;
}
inline int querry (int a)
{
int rez = 0;
for (int i = a; i; i -= i & (-i))
rez += aib[i];
return rez;
}
int main ()
{
freopen ("datorii.in", "r", stdin);
freopen ("datorii.out", "w", stdout);
int m;
scanf ("%d %d", &n, &m);
for (int i = 1; i <= n; ++i)
{
int x;
scanf ("%d", &x);
add (i, -x);
}
for (int i = 1; i <= m; ++i)
{
int op, a, b;
scanf ("%d %d %d", &op, &a, &b);
if (!op)
{
add (a, b);
continue;
}
printf ("%d\n", querry (b) - querry (a - 1));
}
return 0;
}