Pagini recente » Cod sursa (job #1977186) | Cod sursa (job #1324982) | Cod sursa (job #1051248) | Cod sursa (job #2770960) | Cod sursa (job #3256400)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int n,t,v[15005],aib[15005];
void adun(int p,int x){
for (int i=p;i<=n;i+=i&(-i))
aib[i]+=x;
}
int suma(int p){
int s=0;
for (int i=p;i>=1;i-=i&(-i))
s+=aib[i];
return s;
}
int main()
{
fin>>n>>t;
for (int i=1;i<=n;i++){
fin>>v[i];
adun(i,v[i]);
}
for (;t;t--){
int op;
fin>>op;
if (op==1){
int a,b;
fin>>a>>b;
fout<<suma(b)-suma(a-1)<<'\n';
}
else {
int x,p;
fin>>p>>x;
adun(p,-x);
}
}
return 0;
}