Pagini recente » Cod sursa (job #305174) | Cod sursa (job #276941) | Cod sursa (job #3206886) | Cod sursa (job #1716813) | Cod sursa (job #833264)
Cod sursa(job #833264)
#include <iostream>
#include <fstream>
#define zeros(x) ( (x ^ (x - 1)) & x )
using namespace std;
int n,m,x[15100];
void adauga(int r,int a)
{
for(int i=r;i<=n;i+=zeros(i))
{
x[i]+=a;
}
}
int suma(int p)
{
int s=0;
for(int i=p;i>=1;i-=zeros(i))
{
s+=x[i];
}
return s;
}
int main()
{
ifstream fin("datorii.in");
ofstream fout("datorii.out");
fin>>n>>m;
for(int i=1;i<=n;i++)
{
int a;
fin>>a;
adauga(i,a);
}
while(m)
{
int a,p,q;
fin>>a>>p>>q;
if(a==0)
{
adauga(p,-q);
}
else
{
fout<<suma(q)-suma(p-1)<<'\n';
}
m--;
}
return 0;
}