fenwick-add-point
unknown
c_cpp
9 months ago
718 B
18
Indexable
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e5 + 14;
int fen[MAXN], n;
void add(int ind, int x)
{
for(; ind <= n; ind += ind & -ind)
fen[ind] += x;
return;
}
int get(int ind)
{
int sum = 0;
for(; ind; ind -= ind & -ind)
sum += fen[ind];
return sum;
}
int main()
{
ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
int q;
cin>> n >> q;
for(int i = 0; i < n; i++)
{
int a;
cin>> a;
add(i + 1, a);
}
while(q--)
{
int type;
cin>> type;
if(type == 1) // add
{
int idx, x;
cin>> idx >> x;
add(idx, x);
}
else // get
{
int l, r;
cin>> l >> r;
cout << get(r) - get(l - 1) << '\n';
}
}
}Editor is loading...
Leave a Comment