Pagini recente » Cod sursa (job #1760890) | Cod sursa (job #275748) | Cod sursa (job #2388745) | Cod sursa (job #2325976) | Cod sursa (job #1040663)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
int v[150000], n, x, m, a, b, t;
int zeros(int a){
return a&(a-1)^a;
}
void update(int poz, int x){
for(int i=poz; i<=n; i+=zeros(i)){
v[i]+=x;
}
// cout<<"updated:\n";
// for(int j=1; j<=n; ++j) cout<<v[j]<<' ';
// cout<<'\n';
}
int query(int poz){
int sum=0;
for(int i=poz; i>0; i-=zeros(i)){
sum+=v[i];
}
return sum;
}
int main()
{
f>>n>>m;
for(int i=1; i<=n; ++i){
f>>x;
update(i, x);
// for(int j=1; j<=n; ++j) cout<<v[j]<<' ';
// cout<<'\n';
}
while(m--){
f>>t;
if(t==0) f>>a>>b, update(a, -b);
else if(t==1) f>>a>>b, g<<query(b)-query(a-1)<<'\n';
}
// cout<<"updated:\n";
// for(int j=1; j<=n; ++j) cout<<v[j]<<' ';
// cout<<'\n';
return 0;
}