Pagini recente » Cod sursa (job #2707147) | Cod sursa (job #2137033) | Cod sursa (job #624425) | Cod sursa (job #1082536) | Cod sursa (job #516295)
Cod sursa(job #516295)
#include <fstream>
#define zeros(x) (((x)^(x-1))&x)
#define nmax 15002
using namespace std;
ifstream in("datorii.in");
ofstream out("datorii.out");
int N,M,AIB[nmax];
inline void adauga(int x,int val)
{
for(;x<=N;x+=zeros(x))
AIB[x]+=val;
}
inline int query(int x)
{
int v=0;
for(;x>0;x-=zeros(x))
v+=AIB[x];
return v;
}
int main()
{
int i,p,c;
in>>N>>M;
for(i=1;i<=N;i++)in>>c,adauga(i,c);
while(M--)
{
in>>i>>p>>c;
if(i)
out<<query(c)-query(p-1)<<'\n';
else adauga(p,-c);
}
return 0;
}