Pagini recente » Cod sursa (job #1527557) | Cod sursa (job #3231503) | Cod sursa (job #2892509) | Cod sursa (job #1162709) | Cod sursa (job #3248899)
#include <bits/stdc++.h>
using namespace std;
int lsb(int x)
{
int y = (x & -x);
return y;
}
int aib[100005], n;
void add(int poz, int val)
{
for(int i=poz; i<=n; i+=lsb(i))
aib[i] += val;
}
int sum(int poz)
{
int suma = 0;
for(int i=poz; i>0; i-=lsb(i))
suma += aib[i];
return suma;
}
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;
add(i, a);
}
for(int i=0;i<q;i++)
{
cin>>cer>>a>>b;
if(cer == 0)
add(a, b * (-1));
else if(cer == 1)
cout<<sum(b) - sum(a-1)<<'\n';
}
return 0;
}