Pagini recente » Cod sursa (job #2616685) | Cod sursa (job #2470000) | Cod sursa (job #1815270) | Cod sursa (job #736516) | Cod sursa (job #2626060)
#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>>a>>b;
if (op==0)
achitare(a,-b);
else
g<<interogare(b)-interogare(a-1)<<endl;
}
f.close();
g.close();
}