Pagini recente » Cod sursa (job #978408) | Cod sursa (job #1311622) | Cod sursa (job #955177) | Cod sursa (job #793131) | Cod sursa (job #2626137)
#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=0;i<N;i++)
{
f>>x;
achitare(i+1,x);
}
for (i=0;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;
}}
}