Pagini recente » Cod sursa (job #2891404) | Cod sursa (job #2304599) | Cod sursa (job #666335) | Cod sursa (job #116243) | Cod sursa (job #733886)
Cod sursa(job #733886)
#include<fstream>
#define lsb(x) (x)&((x)^((x)-1))
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
int s[15002],n,m;
int sum(int start, int end)
{
int sum=0, slow=0, i;
for(i=end;i;i-=lsb(i))
sum+=s[i];
for(i=start-1;i;i-=lsb(i))
slow+=s[i];
return sum-slow;
}
void mod(int poz, int val)
{
int i;
for(i=poz;i<=n;i+=lsb(i))
s[i]-=val;
}
int main()
{
int a,b,op,i;
f>>n>>m;
for(i=1;i<=n;i++)
{
f>>a;
mod(i,-a);
}
for(i=0;i<m;i++)
{
f>>op>>a>>b;
if(!op)
mod(a, b);
else
g<<sum(a,b)<<"\n";
}
return 0;
}