Pagini recente » Cod sursa (job #1295041) | Cod sursa (job #1868530) | Cod sursa (job #860130) | Cod sursa (job #574278) | Cod sursa (job #1852334)
#include <fstream>
#define NMax 15001
#define zero(x) ((x^(x-1)) & x)
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int AIB[NMax],n;
void Adauga(int poz,int nr)
{
int i;
for(i=poz;i<=n;i+=zero(i))
{
AIB[i]+=nr;
if(AIB[i]<0)
AIB[i]=0;
}
}
int Suma(int poz)
{
int i,S=0;
for(i=poz;i>0;i-=zero(i))
S+=AIB[i];
return S;
}
int main()
{
int i,m,op,x,y;
fin>>n>>m;
for(i=1;i<=n;i++)
{
fin>>x;
Adauga(i,x);
}
for(i=1;i<=n;i++)
{
fin>>op>>x>>y;
if(op==0)
Adauga(x,-y);
else
fout<<Suma(y)-Suma(x-1)<<'\n';
}
return 0;
}