Pagini recente » Cod sursa (job #2305286) | Cod sursa (job #1402265) | Cod sursa (job #728602) | Cod sursa (job #619750) | Cod sursa (job #1667722)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("date.in");
ofstream fout("date.out");
#define zeros(x) ((x^(x - 1))&x)
int AIB[15000],n,m,st,dr,x,val,ind,var;
void adauga(int ind,int val)
{ int i;
for(i=ind; i<=n; i+=zeros(i))
AIB[i]+=val;
}
int suma(int ind)
{
int s=0;
for(int i=ind; i>0; i-=zeros(i))
s=s+AIB[i];
return s;
}
void afis()
{
for(int i=1; i<=n; i++)
fout<<AIB[i]<<' ';
}
int main()
{
fin>>n>>m;
for(int i=1; i<=n; i++)
{
fin>>x;
adauga(i,x);
}
for(int i=1; i<=m; i++)
{
fin>>var;
if(var==0)
{
fin>>ind>>val;
adauga(ind,-val);
}
else if(var==1)
{
fin>>st>>dr;
fout<<suma(dr)-suma(st-1)<<'\n';
}
}
return 0;
}