Pagini recente » Monitorul de evaluare | Monitorul de evaluare | Monitorul de evaluare | Cod sursa (job #3364255) | Cod sursa (job #3364262)
#include <fstream>
using namespace std;
ifstream cin("datorii.in");
ofstream cout("datorii.out");
long long aib[15005];
int v[15005];
int n, m;
void upd(int pos, int val) {
for(int i=pos;i<=n;i+=i & -i)
aib[i]+=val;
}
long long qr(int pos) {
long long s=0;
for(int i=pos;i>0;i-=i & -i)
s+=aib[i];
return s;
}
int main() {
int op,a,b;
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>v[i];
upd(i,v[i]);
}
for(int i=1;i<=m;i++){
cin>>op>>a>>b;
if(op==0){
upd(a,-b);
}
else
cout<<qr(b)-qr(a-1)<<'\n';
}
return 0;
}