Pagini recente » Cod sursa (job #3349229) | Cod sursa (job #1471637) | Monitorul de evaluare | Cod sursa (job #481010) | Cod sursa (job #3328663)
#include <fstream>
#include <cmath>
using namespace std;
int v[15001], batog[130];
ifstream cin("datorii.in");
ofstream cout("datorii.out");
int main()
{
int n, m, nr, i, cer, x, y, s;
cin>>n>>m;
nr=sqrt(n);
for( i = 0; i < n; i++ ){
cin>>v[i];
batog[i/nr]+=v[i];
}
for( int q = 1; q <= m; q++ ){
cin>>cer>>x>>y;
x--;
if( cer == 0 ){
batog[x/nr]-=y;
v[x]-=y;
}
else{ //cer==1
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;
}