Pagini recente » Cod sursa (job #2852786) | Cod sursa (job #1140961) | Cod sursa (job #1384050) | Cod sursa (job #2950336) | Cod sursa (job #1333506)
#include <fstream>
using namespace std;
int m, n, val, tip, p, a, b;
int arb[100001];
void update(int x, int nr)
{
int ind;
while(x<=n)
{
ind=0;
arb[x]+=nr;
while( !(x&(1<<ind))) ind++;
x+=(1<<ind);
}
}
int query(int x)
{
int ind, result=0;
while(x>0)
{
ind=0;
result+=arb[x];
while( !(x&(1<<ind))) ind++;
x-=(1<<ind);
}
return result;
}
int main()
{
ifstream in("datorii.in");
ofstream out("datorii.out");
in>>n>>m;
for(int i=1; i<=n; ++i)
{
in>>val;
update(i, val);
}
for(int i=1; i<=m; ++i)
{
in>>tip;
if(!tip)
{
in>>p>>val;
update(p, (-val));
}
else
{
in>>a>>b;
out<<query(b)-query(a-1)<<"\n";
}
}
in.close();
out.close();
return 0;
}