Pagini recente » Cod sursa (job #3147878) | Cod sursa (job #300709) | Cod sursa (job #2507011) | Cod sursa (job #2402939) | Cod sursa (job #2970663)
#include <fstream>
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
int v[15003];
int aib[15003];
int n;
void build(int x,int val)
{
if(x>n)
return;
aib[x]=aib[x]+val;
build(x+(x&(-x)),val);
}
void update(int x,int val)
{
if(x>n)
return;
aib[x]=aib[x]-val;
update(x+(x&(-x)),val);
}
int getsum(int x)
{
if(x==0)
return 0;
return aib[x]+getsum(x-(x&(-x)));
}
int main()
{
int m,i,op,a,b;
f>>n>>m;
for(i=1;i<=n;i++)
{
f>>v[i];
build(i,v[i]);
}
for(i=1;i<=m;i++)
{
f>>op>>a>>b;
if(op==0)
{
update(a,b);
}
if(op==1)
{
g<<getsum(b)-getsum(a-1)<<'\n';
}
}
return 0;
}