Pagini recente » Cod sursa (job #2254484) | Cod sursa (job #1701486) | Cod sursa (job #1433431) | Cod sursa (job #2298466) | Cod sursa (job #1487906)
#include <bits/stdc++.h>
using namespace std;
const int nmax = 15005;
int aib[4*nmax], dim=1, n, m;
void update(int poz, int x)
{
for(int i=poz; i<=n; i=i+(i&(-i)))
aib[i]=aib[i]+x;
}
int query(int i)
{
int s=0;
for(s=0; i; i=i-(i&(-i)))
s=s+aib[i];
return s;
}
int main()
{
freopen("datorii.in", "r", stdin);
freopen("datorii.out", "w", stdout);
int t, a, b, i, rez;
scanf("%d %d", &n, &m);
for(i=1; i<=n; i++)
{
scanf("%d", &a);
update(i, a);
}
for(i=1; i<=m; i++)
{
scanf("%d %d %d", &t, &a, &b);
if(t)
{
rez=query(b)-query(a-1);
printf("%d\n", rez);
}
else update(a, -b);
}
fclose(stdin);
fclose(stdout);
return 0;
}