Pagini recente » Cod sursa (job #2886084) | Cod sursa (job #2065080) | Cod sursa (job #384631) | Cod sursa (job #2854429) | Cod sursa (job #2029893)
#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=0;
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-1)<<'\n';
}
}
}