Pagini recente » Cod sursa (job #2310076) | Cod sursa (job #2589168) | Cod sursa (job #965541) | Cod sursa (job #823397) | Cod sursa (job #1630739)
#include<fstream>
using namespace std;
int a[15005], n, m, x, y, op, s, i2, i;
void build(int poz, int val)
{
for(i2=poz; i2<=n; i2+=(i2&(-i2)))
a[i2]+=val;
}
void update(int poz, int val)
{
for(i2=poz; i2<=n; i2+=(i2&(-i2)))
a[i2]-=val;
}
int query(int poz)
{
s=0;
for(i2=poz; i2>0; i2-=(i2&(-i2)))
s+=a[i2];
return s;
}
ifstream in("datorii.in");
ofstream out("datorii.out");
int main()
{
in>>n>>m;
for(i=1; i<=n; i++)
{
in>>x;
build(i, x);
}
for(;m--;)
{
in>>op>>x>>y;
if(op==0)
{
update(x, y);
continue;
}
out<<query(y)-query(x-1)<<"\n";
}
}