Pagini recente » Cod sursa (job #3301333) | Cod sursa (job #2893783) | Cod sursa (job #3326913) | Cod sursa (job #753894) | Cod sursa (job #3321892)
#include <iostream>
#include <fstream>
using namespace std;
int n, v[15002];
void update(int i, int val)
{
while(i<=n)
{
v[i]+=val;
i+=(i&-i);
}
}
int prefixSum(int i)
{
int sum=0;
while(i>0)
{
sum+=v[i];
i-=(i&-i);
}
return sum;
}
int range(int i, int j)
{
return prefixSum(j)-prefixSum(i-1);
}
int main()
{
ifstream cin("datorii.in");
ofstream cout("datorii.out");
int q, cer, a, b;
cin >> n >> q;
for(int i=1; i<=n; i++)
{
cin >> a;
update(i, a);
}
for(int i=0; i<q; i++)
{
cin >> cer >> a >> b;
if(cer==0) { update(a, -b); }
else { cout << range(a, b) << '\n'; }
}
return 0;
}