Pagini recente » Cod sursa (job #604218) | Cod sursa (job #2743203) | Cod sursa (job #658730) | Cod sursa (job #1648440) | Cod sursa (job #1685042)
# include <cstdio>
using namespace std;
FILE *f = freopen("datorii.in", "r", stdin);
FILE *g = freopen("datorii.out", "w", stdout);
const int N_MAX = 15001;
int v[N_MAX];
int aib[N_MAX];
int N, M;
void update_aib(int pos, int val)
{
aib[pos] += val;
while (pos <= N)
{
pos += pos & (pos ^ (pos-1));
aib[pos] += val;
}
}
int query_aib(int pos)
{
int ans = 0;
while (pos)
{
ans += aib[pos];
pos -= pos & (pos ^ (pos-1));
}
return ans;
}
void read()
{
scanf("%d %d", &N, &M);
for (int i=1; i<=N; i++)
{
scanf("%d", &v[i]);
update_aib(i, v[i]);
}
}
void solve()
{
for (int i=1; i<=M; i++)
{
int type, a, b;
scanf("%d %d %d", &type, &a, &b);
if (type == 0)
update_aib(a, -b);
else
printf("%d\n", query_aib(b) - query_aib(a-1));
}
}
int main()
{
read();
solve();
return 0;
}