Pagini recente » Cod sursa (job #1589778) | Cod sursa (job #906956) | Cod sursa (job #652609) | Cod sursa (job #2813139) | Cod sursa (job #2782557)
#include <fstream>
#define NMAX 15005
using namespace std;
ifstream in("datorii.in");
ofstream out("datorii.out");
int n,m;
int v[NMAX];
inline int pas (int nr)
{
return (nr ^ (nr-1) ) & nr;
}
void modifica(int poz, int val)
{
for(int i=poz;i<=n;i+=pas(i))
v[i]-=val;
}
int calc(int poz)
{
int sum=0;
for(int i=poz;i>=1;i-=pas(i))
sum+=v[i];
return sum;
}
int main()
{
in>>n>>m;
for(int i=1,x;i<=n;i++)
{
in>>x;
modifica(i,-x);
}
for(int i=1,cer,a,b;i<=m;i++)
{
in>>cer>>a>>b;
if(cer==0)
modifica(a,b);
else
out<<calc(b)-calc(a-1)<<'\n';
}
return 0;
}