Pagini recente » Cod sursa (job #2418227) | Cod sursa (job #2320351) | Cod sursa (job #579593) | Cod sursa (job #2558022) | Cod sursa (job #2182888)
#include <fstream>
using namespace std;
int v[1000005],aib[1000005],n;
void update(int poz,int val,int cer)
{
if(cer==1)
val=val*(-1);
for(;poz<=n;poz=poz+(poz&(-poz)))
aib[poz]+=val;
}
int query(int poz)
{
int s=0;
for(;poz>0;poz=poz-(poz&(-poz)))
s+=aib[poz];
return s;
}
int main()
{
ifstream cin("datorii.in");
ofstream cout("datorii.out");
int k,cer,a,b,x,y;
cin >> n >> k;
for(int i=1;i<=n;i++)
{
cin >> v[i];
update(i,v[i],0);
}
for(int i=0;i<k;i++)
{
cin >> cer >> a >> b;
if(cer==0)
{
update(a,b,1);
}
if(cer==1)
{
x=query(b);
y=query(a-1);
cout << x-y << '\n';
}
}
return 0;
}