Pagini recente » Cod sursa (job #2555384) | Cod sursa (job #2308739) | Cod sursa (job #2687473) | Cod sursa (job #565816) | Cod sursa (job #2209762)
#include <bits/stdc++.h>
using namespace std;
int n ,a[15001],rep=0,d,m,x,y,c,s=0,sf=0;
int bitt(int x)
{
return (x & -(x));
}
int scad(int i,int s)
{
while(i<=n)
{
a[i] -= s;
i+=bitt(i);
}
}
void add(int i, int k) // Adds k to element with index i
{
while (i <= n)
a[i] += k, i += bitt(i);
}
int sum(int i) // Returns the sum from index 1 to i
{
int sum = 0;
while (i > 0)
sum += a[i] , i -= bitt(i);
return sum;
}
int main()
{
ifstream f("datorii.in");
ofstream g("datorii.out");
f>>n>>m;
for(int i=1 ;i<=n; ++i)
{
f>>x;
add(i,x);
}
for(int j=1; j<=m; ++j)
{
f>>c>>x>>y;
if(c==1)
{
g<<sum(y)-sum(x-1)<<endl;
}
else
{
scad(x,y);
}
}
return 0;
}