Pagini recente » Cod sursa (job #287922) | Cod sursa (job #912181) | Cod sursa (job #398663) | Cod sursa (job #2328123) | Cod sursa (job #1635870)
#include <iostream>
#include<fstream>
using namespace std;
int zile[15005],n,m;
bool a;
ifstream f("datorii.in");
ofstream g("datorii.out");
inline int lbit(int x)
{
return ((x^(x-1))&x);
}
void plateste(int i,int val)
{
for(i;i<=n;i+=lbit(i))
zile[i]+=val;
return;
}
int cautasuma(int i)
{
int sum=0;
for(i;i>0;i-=lbit(i))
sum+=zile[i];
return sum;
}
int interogare(int i,int j)
{
int sum1,sum2,sum3;
sum1=cautasuma(i-1);
sum2=cautasuma(j);
sum3=sum2-sum1;
return sum3;
}
int main()
{
f>>n>>m;int suma,x,y;
for(int contor=1;contor<=n;contor++)
{
f>>suma;
plateste(contor,suma);
}
for(int contor=1;contor<=m;contor++)
{
f>>a;f>>x>>y;
if(a==0)
{
y*=-1;
plateste(x,y);
}
else
{
g<<interogare(x,y)<<'\n';
}
}
return 0;
}