Pagini recente » Cod sursa (job #221276) | Cod sursa (job #1423716) | Cod sursa (job #1010974) | Cod sursa (job #705105) | Cod sursa (job #3328684)
#include <fstream>
#include <cmath>
using namespace std;
ifstream cin("datorii.in");
ofstream cout("datorii.out");
int v[15001],batog[130];
int main()
{
int n,m,i,nr,tip,x,y,s;
cin>>n>>m;
nr=sqrt(n);
for(i=0;i<n;i++){
cin>>v[i];
batog[i/nr]+=v[i];
}
for(i=1;i<=m;i++){
cin>>tip>>x>>y;
x--;
if(tip==0){ ///adunare
batog[x/nr]-=y;
v[x]-=y;
}
else{ ///interogare
y--;
s=0;
while(x%nr!=0 && x<=y){
s+=v[x];
x++;
}
while(x+nr<y){
s+=batog[x/nr];
x+=nr;
}
while(x<=y){
s+=v[x];
x++;
}
cout<<s<<'\n';
}
}
return 0;
}