Pagini recente » Cod sursa (job #2755519) | Cod sursa (job #1127708) | Cod sursa (job #1933317) | Cod sursa (job #2830167) | Cod sursa (job #1553207)
#include<stdio.h>
using namespace std;
const int N = 15005;
long long aib[N];
void update (long long poz, long long val, long long n)
{
while (poz <= n)
{
aib[poz] += val;
poz += poz & (-poz);
}
}
long long interog (long long poz)
{
long long s = 0;
while (poz > 0)
{
s += aib[poz];
poz -= poz & (-poz);
}
return s;
}
int main ()
{
FILE *in, *out;
in = fopen ("datorii.in", "r");
out = fopen ("datorii.out", "w");
long long n, m;
fscanf (in, "%lld%lld", &n, &m);
long long x;
long long i;
for (i = 1; i <= n; i++)
{
fscanf (in, "%lld", &x);
update (i, x, n);
}
bool cerinta;
long long t;
long long v;
for (i = 1; i <= m; i++)
{
fscanf (in, "%d", &cerinta);
if (cerinta == 0)
{
fscanf (in, "%lld%lld", &t, &v);
update (t, -v, n);
}
else
{
fscanf (in, "%lld%lld", &t, &v);
fprintf (out, "%lld\n", interog(v) - interog(t - 1));
}
}
return 0;
}