Pagini recente » Cod sursa (job #449404) | Cod sursa (job #2239091) | Cod sursa (job #1015077) | Cod sursa (job #2686179) | Cod sursa (job #2798827)
#include <fstream>
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int arb[15001];
int n,m;
int zeros(int x)
{
return ( (x ^ (x - 1)) & x );
}
void Add(int x,int quantity)
{
for (int i=x;i<=n;i+=zeros(i))
arb[i]+=quantity;
}
int compute(int x)
{
int i,ret=0;
for (i=x;i>0;i-=zeros(i))
ret+=arb[i];
return ret;
}
int main()
{
fin>>n>>m;
for (int i=1;i<=n;i++)
{
int val;
fin>>val;
Add(i,val);
}
for (int i=1;i<=m;i++)
{
int cer;
fin>>cer;
int a,b;
fin>>a>>b;
if (cer==0)
{
Add(a,-b);
}
else
{
fout<<compute(b)-compute(a-1)<<'\n';
}
}
return 0;
}