Pagini recente » Cod sursa (job #2333351) | Cod sursa (job #2341529) | Cod sursa (job #3214692) | Cod sursa (job #432305) | Cod sursa (job #2384962)
#include <fstream>
#include <iostream>
#include <algorithm>
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
long long n,m,a,v[15001],i,k,T,V,P,Q,tip;
void upd(long long x, long long p){
for(;p<=n;p+=(p&-p))
v[p]+=x;
}
long long query(long long p){
long long sol=0;
for(;p;p-=(p&-p))
sol+=v[p];
return sol;
}
int main(){
fin>>n>>m;
for(i=1;i<=n;i++){
fin>>a;
upd(a,i);
}
/*
for(i=1;i<=n;i++)
cout<<v[i]<<" ";
cout<<"\n";
*/
for(i=1;i<=m;i++){
fin>>tip;
if(tip==0){
fin>>T>>V;
upd(-V,T);
}else{
fin>>P>>Q;
//cout<<query(Q)<<" "<<query(P-1)<<"\n";
fout<<query(Q)-query(P-1)<<"\n";
}
}
return 0;
}