Pagini recente » Istoria paginii runda/cupadetest/clasament | Cod sursa (job #785131)
Cod sursa(job #785131)
#include<iostream>
#include<fstream>
using namespace std;
const int maxx=15006;
int n,m,i,x,tip,a,b,aib[maxx];
int pas(int poz)
{
return poz & (-poz);
}
void update(int poz,int val)
{
while(poz<=n)
{
aib[poz]+=val;
poz+=pas(poz);
}
}
int suma(int poz)
{
int s=0;
while(poz)
{
s+=aib[poz];
poz-=pas(poz);
}
return s;
}
int main()
{
freopen("datorii.in","r",stdin);
freopen("datorii.out","w",stdout);
scanf("%d %d\n",&n,&m);
for(i=1;i<=n;i++)
{
scanf("%d",&x);
update(i,x);
}
for(i=1;i<=m;i++)
{
scanf("%d %d %d\n",&tip,&a,&b);
if(tip==0)
update(a,-b);
else
printf("%d\n",suma(b)-suma(a-1));
}
return 0;
}