Pagini recente » Cod sursa (job #2493939) | Clasament lastproblem | Cod sursa (job #499178) | Cod sursa (job #2182519) | Cod sursa (job #3219109)
/******************************************************************************
Online C++ Compiler.
Code, Compile, Run and Debug C++ program online.
Write your code in this editor and press "Run" button to compile and execute it.
*******************************************************************************/
#include <bits/stdc++.h>
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int n;
int v[1501];
int C=0;
int bit[1501];
void update(int i, int val) {
C = 0;
while (i<=n)
{
bit[i]+=val;
while ( !(i&(1<<C))) C++;
i+=(1<<C);
C++;
}
}
int prefixsum(int i) {
int sum=0;
C=0;
while(i>0) {
sum+=bit[i];
while ( !(i & (1<<C)) ) C++;
i -= (1<<C);
C++;}
return sum;
}
int rangesum(int i, int j) {
return prefixsum(j)-prefixsum(i-1);
}
int main()
{
int m,x,y,z;
fin>>n>>m;
for(int i=1;i<=n;i++) {
fin>>v[i];
update(i,v[i]);
}
for(int i=1;i<=m;i++) {
fin>>x>>y>>z;
if(x==0) update(y,-1*z);
else fout<<rangesum(y,z)<<endl;
}
return 0;
}