Pagini recente » Cod sursa (job #144870) | Cod sursa (job #788137) | Cod sursa (job #321349) | Cod sursa (job #1099979) | Cod sursa (job #2024328)
#include <fstream>
#define ub(x) (x&(-x))
using namespace std;
ifstream f ("datorii.in");
ofstream g ("datorii.out");
int i,n,aib[15002],x,j,t,v,m,c;
void update (int poz,int val)
{
for (j=poz; j<=n; j+=ub(j))
aib[j]+=val;
}
void scad (int poz, int val)
{
for (j=poz;j<=n;j+=ub(j))
aib[j]-=val;
}
int sum (int poz)
{
int S;
for (j=poz; j>0; j-=ub(j))
{
S=S+aib[j];
}
return S;
}
int main ()
{
f>>n>>m;
for (i=1; i<=n; i++)
{
f>>x;
update (i,x);
}
for (i=1; i<=m; i++)
{
f>>c;
if (c==0)
{
f>>t>>v;
scad (t,v);
}
else if (c==1)
{
f>>t>>v;
g<<sum(v)-sum(t)<<'\n';
}
}
}