Pagini recente » Cod sursa (job #2031480) | Cod sursa (job #867385) | Cod sursa (job #1364736) | Cod sursa (job #1756136) | Cod sursa (job #2626048)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
#define zeros(x) ((x ^ (x-1)) & x)
int N,M,a,b,x,op,i,zile[15001];
void achitare(int a,int b)
{ for(int i=a;i<=N;i+=zeros(i))
zile[i]+=b;
}
int interogare(int a)
{int S=0;
for (int i=a; i>0; i-=zeros(i))
S += zile[i];
return S;
}
int main()
{
f>>N>>M;
for (i=1;i<=N;i++)
{
f>>x;
achitare(i,x);
}
for (i=1;i<=M;i++)
{f>>op;
switch(op){
case 0:
f>>a>>b;
achitare(a,-b);
break;
case 1:
f>>a>>b;
g<<interogare(b)-interogare(a-1)<<endl;
break;
}
}
}