Pagini recente » Cod sursa (job #178476) | Cod sursa (job #749759) | Cod sursa (job #1449880) | Cod sursa (job #2313531) | Cod sursa (job #1036414)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <cmath>
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
int v[150000], n, x, m, a, b, t, sq, batog[100000];
void update(int p, int val){
v[p]+=val;
int poz;
if(p%sq==0) poz=p/sq-1;
else poz=p/sq;
//cout<<"bag: "<<val<<" in "<<poz<<'\n';
batog[poz]+=val;
}
int query(int x){
int sum=0;
while(x%sq!=0) sum+=v[x], x--;
//x--;
for(int i=x/sq-1; i>=0; --i) sum+=batog[i];
return sum;
}
int main()
{
f>>n>>m;
sq=(int)sqrt(n);
for(int i=1; i<=n; ++i){
f>>x;
update(i, x);
}
//cout<<m;
while(m--){
f>>t; //cout<<t<<"<-------";
f>>a>>b;
if(t==0) update(a, -b);
else if(t==1) g<<query(b)-query(a-1)<<'\n';
}
//for(int j=0; j<=sq; ++j) cout<<batog[j]<<' ';
return 0;
}