Pagini recente » Cod sursa (job #194316) | Cod sursa (job #2519152) | Cod sursa (job #939148) | Cod sursa (job #1968437) | Cod sursa (job #1139423)
#include <cstdio>
#define sum(x) (x & (-x))
using namespace std;
int n, m, v[15010];
void add (int x, int poz)
{
for (int i = poz; i <= n; i += sum(i))
v[i] += x;
}
int suma (int poz)
{
int s = 0;
for (int i = poz; i; i -= sum(i))
s += v[i];
return s;
}
int main ()
{
freopen ("datorii.in", "r", stdin);
freopen ("datorii.out", "w", stdout);
scanf ("%d %d", &n, &m);
for (int i = 1; i <= n; i++)
{
int x;
scanf ("%d", &x);
add (x, i);
}
for (int i = 1; i <= m; i++)
{
int x, a, b;
scanf ("%d %d %d", &x, &a, &b);
if (!x) add (-b, a);
else printf ("%d\n", suma (b) - suma (a - 1));
}
return 0;
}