Pagini recente » Cod sursa (job #512822) | Cod sursa (job #649581) | Cod sursa (job #2938873) | Cod sursa (job #54029) | Cod sursa (job #1730541)
#include <fstream>
#include <iostream>
#define dim 100001
#define zeros(x) ((x^( x-1))&x))
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int AIB[dim],a,x,y,b,i;
void ADD(int x,int y)
{
for(int j=x;j<=n;j=j+zeros(j))
AIB[j]=AIB[j]+y;
}
int compute(int x)
{
int sum=0;
for(int j=x;j>0;jj-zeros(j))
sum=sum+AIB[j];
return sum;
}
int main()
{
fin>>n>>m;
for(i=1;i<=n;i++)
{
fin>>a;
ADD(i,a);
}
for(i=1;i<=m;i++)
{
fin>>b>>x>>y;
if(b==0)
ADD(x,-y);
else
fout<<compute(y)-compute(x-1)<<"\n";
}
fin.close();
fout.close();
return 0;
}