Pagini recente » Cod sursa (job #384431) | Cod sursa (job #2216694) | Cod sursa (job #1575656) | Cod sursa (job #1629148) | Cod sursa (job #1740917)
#include <fstream>
#define VAL 15005
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int N, M, i, op;
int aib[VAL], a, b;
int zero(int x)
{
return x&(-x);
}
void update(int a, int b)
{
while (a<=N)
{
aib[a]+=b;
a+=zero(a);
}
}
int suma(int a, int b)
{
int x=0;
int y=0;
a--;
while (a>0)
{
x+=aib[a];
a-=zero(a);
}
while (b>0)
{
y+=aib[b];
b-=zero(b);
}
return y-x;
}
int main()
{
fin >> N >> M;
for (i=1; i<=N; i++)
{
fin >> a;
update(i, a);
}
for (i=1; i<=M; i++)
{
fin >> op >> a >> b;
if (op==0)
update(a, -b);
else
fout << suma(a, b) << '\n';
}
fin.close();
fout.close();
return 0;
}