Pagini recente » Cod sursa (job #241743) | Cod sursa (job #456828) | Cod sursa (job #2368066) | Cod sursa (job #1812791) | Cod sursa (job #1685865)
#include <fstream>
using namespace std;
#define zeros(x) ((x^(x-1))&x)
#define NMax 15005
ifstream f("datorii.in");
ofstream g("datorii.out");
long long int AIB[NMax];
int N,M;
void update_aib(int,int);
int query_aib(int);
void read();
void solve();
int main()
{
read();
solve();
return 0;
}
void read()
{
f>>N>>M;
for(int i=1;i<=N;i++)
{ int x;
f>>x;
update_aib(i,x);
}
}
void solve()
{
for(int i=1;i<=M;++i)
{
int what,a,b;
f>>what>>a>>b;
if(what==0)
update_aib(a,-b);
else
g<<query_aib(b)-query_aib(a-1)<<'\n';
}
}
void update_aib(int poz,int val)
{
int i;
for(i=poz;i<=N;i+=zeros(i))
AIB[i]+=val;
}
int query_aib(int poz)
{
int i,ans=0;
for(i=poz;i>0;i-=zeros(i))
ans+=AIB[i];
return ans;
}