Pagini recente » Cod sursa (job #2661331) | Cod sursa (job #12278) | Cod sursa (job #268736) | Cod sursa (job #2542024) | Cod sursa (job #3151006)
#include <fstream>
using namespace std;
ifstream cin("datorii.in");
ofstream cout("datorii.out");
int bit[100002], n;
void update(int i, int val)
{
while(i <= n)
{
bit[i] += val;
i += i & -i;
}
}
int prefixSum(int i)
{
int sum = 0;
while(i > 0)
{
sum += bit[i];
i -= i & -i;
}
return sum;
}
int rangeSum(int i, int j)
{
return prefixSum(j) - prefixSum(i - 1);
}
int main()
{
int m, a, b, ok;
cin >> n >> m;
for(int i = 1; i <= n; i++)
{
cin >> a;
update(i, -a);
}
for(int i = 1; i <= m; i++)
{
cin >> ok >> a >> b;
if(ok == 0)
update(a, b);
else
cout << rangeSum(a, b) * (-1) << '\n';
}
return 0;
}