Pagini recente » Cod sursa (job #1201412) | Cod sursa (job #492891) | Statistici Alex Deac Claudiu (alexandros2233) | Cod sursa (job #418028) | Cod sursa (job #1999731)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int n,m;
vector<int> x;
void add(int k, int a){
for(k=k;k<=n;k+=((k)&(-k))) x[k]+=a;
}
int sumtok(int k){
int sum=0;
for(k=k;k>=1;k-=((k)&(-k))) sum+=x[k];
return sum;
}
int intervalsum(int a, int b){
return sumtok(b)-sumtok(a-1);
}
int main()
{
fin>>n>>m;
x.resize(n+1);
int f,g,h;
for(int i=1;i<=n;i++){
fin>>f;
add(i,f);
}
for(int i=1;i<=m;i++){
fin>>h>>f>>g;
if(h==0) add(f,-g);
else fout<<intervalsum(f,g)<<"\n";
}
return 0;
}