Pagini recente » Cod sursa (job #3173693) | Cod sursa (job #1146195) | Cod sursa (job #989996) | Cod sursa (job #1890450) | Cod sursa (job #1498906)
#include <iostream>
#include <fstream>
#define NMAX 1503
using namespace std;
ifstream in("datorii.in");
ofstream out("datorii.out");
int n,m,v[NMAX],val,poz,t,a,b,sum,aib[NMAX];
void citire()
{
in >> n >> m;
for(int i=1;i<=n;i++)
in >> v[i];
}
void update(int i,int delta)
{
for(;i<=n;i=i+(i&(-i)))
{
aib[i] = aib[i] + delta;
}
}
int sums(int i)
{
int suma=0;
for(;i>0;i=i-(i&(-i)))
{
suma+= aib[i];
}
return suma;
}
int main()
{
citire();
for(int i=1;i<=n;i++)
{
poz = i;
val = v[i];
update(poz,val);
}
for(int i=0;i<m;i++)
{
in>> t >> a >> b;
if(t==0)
{
poz = a;
val = (-1)*b;
update(poz,val);
}
else
{
sum = 0;
sum = sums(b) - sums(a-1);
out << sum << "\n";
}
}
return 0;
}